day47 选择器优先级及嵌套关系
复习
1.前端: 网页, html + css + js
2.html三个组成部分:标签,指令和转义字符
标签: <>包裹, 以字母开头, 可以结合-|数字, 能被浏览器解析的标记
3.常用的基本标签
div,a,link,img,p,i,span,b,ul>li,(br/hr),sup,sub.pre,table>thead>tbody>tfoot>tr>th|td
4.css引入
行间式:style属性中
内联式:head标签的style标签中
外联式:css文件中
选择器{
样式块
}
今日内容
css基础选择器
长度与颜色设置
display属性样式
字体|文本相关属性样式
背景属性样式
边界圆角属性样式
盒模型及盒模型布局
基础选择器
1.(*)通配选择器:html,body,body下的可用于显示的标签
2.div(标签选择器):该标签名对用的所有该标签
3. (.) (class选择器)(eg:.div = class='div'):类名为div的所有标签,可以重名
4.(id选择器)(eg:#div => id='div'):id名为div的唯一标签
<style>
div{
width: 100px;
height: 100px;
color: red;
background-color: green;
}
.div1{
width: 200px;
height: 200px;
color: white;
background-color: black ;
}
#div3{
width: 20px;
height: 20px;
color: white;
background-color: orange ;
}
</style>
<div>123</div>
<div class="div1">1</div>
<div class="div2">2</div>
<div id="div3">2</div>
总结:
1.在实际开发中,尽量少用或不用标签吗作为选择器,标签名作为选择器一般是该标签处在最内层的时候(使用它的语义或功能时)
2.内联和外联,相同属性采用处在下面的覆盖上面的,不同属性进行叠加
3.在css语法选择器中,用.class名来代表class,用#id名来标识id
4.行间式属于逻辑的最下方,相同的属性一定会覆盖内联和外联
5.一般不使用行间式单独操作(可读性差),所以用起别名的方式来单独改变其颜色
6.用class起名,分类别,可以重名,给标签设置唯一标识符是使用id
选择器的优先级
理解:控制范围越精确,优先级越高,所设置的样式会覆盖优先级低的相同属性样式
结论:优先级顺序 通配<标签 < class < id < 行间式 < |important
行间式优先级要高于内联和外联所有选择器,但是不能高于!important,属性值与分号之间加!important
注意: !important书写在属性值后;前
<style>
#div {
background-color: yellow;
}
.div {
background-color: yellowgreen;
}
div {
background-color: green!important;
}
* {
width: 100px;
height: 100px;
background-color: darkgreen;
}
/*!important 优先级要强于行间式, 在属性值与;之间设定*/
</style>
<div class="div" id="div" style="</div>
长度与颜色
长度单位: px mm cm em rem vw vh in
颜色设置方式:
1.颜色单词
2.#000000 ~ #FFFFFF (#abc == #AABBCC)
3.rgb(0~255, 0~255, 0~255)|rgba(0~255, 0~255, 0~255, 0~1)
rgba代表颜色和透明度,0为完全透明,1为不透明
<style>
.div {
/*px mm cm em rem vw vh in*/
width: 10in;
height: 100px;
/*颜色:
1.颜色单词
2.#000000 ~ #FFFFFF (#abc == #AABBCC)
3.rgb(0~255, 0~255, 0~255)|rgba(0~255, 0~255, 0~255, 0~1)
*/
background-color: rgba(255, 0, 0, 0.5);
}
</style>
<div class="div"></div>
显示方式display
1.有些标签支持宽高,有些标签不支持宽高
2.有些标签同行显示,有些标签异行显示(独占一行)
3.有些标签由结束标识,有些标签没有结束标签(省略了)
不同的标签,在页面中书写的方式不一样,显示效果也不一样,支持的css样式程度也不一样
分类:
1.单双标签的分类
单标签:br,hr,img,meta,link,特性:功能具体,不需要内容,设置为单标签,单标签结束符在标签尾部,可以省略
eg:<img />,<br />
双标签:h1,p,span,div,具有子标签,包含内容,设置为双标签,双标签首尾分离
eg:<h1>内容</h1>
结论:主内容
<style>
span{
width: 200px;
height: 50px;
}
p{
width: 200px;
height: 50px;
background-color: red;
}
img{
width: 200px;
/*height: 50px;*/
}
</style>
<spam>123<i>456</i><b>789</b></spam>
<spam>123<i>456</i><b>789</b></spam>
<p>123<i>456</i><b>789</b></p>
<p>123<i>456</i><b>789</b></p>
<img src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=538916491,4234853604&fm=200&gp=0.jpg" alt="">
<img src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=538916491,4234853604&fm=200&gp=0.jpg" alt="">
2.通过display属性值进行划分
dispaly
what: 控制标签在页面中的显示方式的属性
why: 通过设置该属性的不同属性值,使其在页面中的显示方式达到设定的效果,且对于css的样式支持程度也不一样
1.同行显示inline:只支持部分css样式(不支持宽高),宽高由文本内容撑开
.o1 {
display: inline;
/*
1.同行显示
2.只支持部分css样式(不支持宽高)
3.宽高由文本内容撑开
*/}
2.block:异行显示,支持所有css样式,设置了宽高就采用设置的值,宽高也具有默认的特性(后面讲)
.o2 {
display: block;
/*
1.异行显示
2.支持所有css样式
3.设置了宽高就采用设置的值, 宽高也就有默认的特性(后面讲)
*/}
3.inline-block:同行显示,支持所有css样式,设置了宽高就采用设置的值,宽高也具有默认的特性(后面讲)
.o3 {
display: inline-block;
/*
1.同行显示
2.支持所有css样式
3.设置了宽高就采用设置的值
*/}
<owen class="o1">123</owen>
<owen class="o1">123</owen>
<hr>
<owen class="o2">123</owen>
<owen class="o2">123</owen>
<hr>
<owen class="o3">123</owen>
<owen class="o3">123</owen>
结论:
1.带有inline的就会同行显示,带有block的就会支持所有css样式
2.带有inline的都是与内容相关的标签,带有block的主要用来搭建架构的
嵌套关系
<style>
.list {
display: inline-block;
vertical-align: middle;
}
/*总结: vertical-align
baseline: 文本底端对齐(默认值)
top: 标签顶端对齐
middle: 标签中线对齐
bottom: 标签底端对齐
*/
.box {
width: 80px;
height: 35px;
background-color: #333;
}
</style>
<div class="list">
<div class="box">呵呵呵呵呵呵呵呵呵呵呵呵</div>
</div>
<div class="list">
<div class="box" style="height: 60px">呵呵</div>
</div>
why:页面架构就是由一层层嵌套关系形成的
嵌套关系有一定的规则:
1.inline-block类型不建议嵌套任意标签,所以系统的inline-block都设计成了单标签
2.inline类型只嵌套inline类型的便签
3.block类型可以嵌套任意类型标签(注:h1-h6和p,只建议嵌套inline类型)
标签的显示方式就是由display属性
结论:
1.inline嵌套block和inline-block,不起任何作用,所以只能嵌套inline
2.inline-block可以嵌套其他类型标签,但一定要结合vertical-asign属性操作,左右还有一空格间距
3.block嵌套该如何显示?
盒模型
margin,border,padding,content
.d${$}*7
总结:
盒模型由四部分组成: margin + border + padding + content
1.margin: 外边距, 控制盒子的位置(布局), 通过左和上控制自身位置, 通过右和下影响兄弟盒子位置(划区域)
/*margin: 100px 50px;*/
/*起始为上, 顺时针依次赋值, 不足边取对边*/
2.border: 边框, 样式/宽度/颜色 (solid实线 dashed虚线 dotted点状线)
/*border-style: solid;*/
/*border-width: 10px;*/
/*border-color: red;*/
/*transparent透明色*/
border: blue dashed 20px;
3.padding: 内边距, 从显示角度控制文本的显示区域
/*padding: 10px 10px 10px 10px;*/
/*padding: 20px 30px;*/
/*起始为上边, 顺时针依次赋值, 不足边取对边*/
4.content: 内容区域, 由宽 x 高组成
width: 190px;
height: 190px;
<div class="box">123</div>
<div>456</div>
注意:
1.margin,padding: 起始为上, 顺时针依次赋值, 不足边取对边
2.要做到文本内移,设置padding, 如果又想显示区域不变, 相应减少content
盒模型布局
1.上下两个盒子的margin-bottom和margin-top功能相同, 同时出现, 取大值.左右正常叠加
<style>
.b1 {
margin-bottom: 50px;
}
.b2 {
margin-top: 50px;
}
</style>
<div class="b1"></div>
<div class="b2"></div>
2.第一个有显示区域的子级会和父级联动(margin-top重叠), 取大值
解决2:
1.父级设置border-top
2.父级设置padding-top
<style>
.sup {
width: 200px;
height: 200px;
background-color: orange;
/*margin-top: 40px;*/
/*border-top: 1px solid black;*/
padding-top: 10px;
}
.sub1 {
/*border: 1px solid red;*/
width: 50px;
height: 50px;
background-color: red;
margin-top: 50px;
}
.sub2 {
width: 50px;
height: 50px;
background-color: pink;
margin-top: 50px;
}
</style>
<section class="sup">
<section class="sub1"></section>
<section class="sub2"></section>
</section>
day47 选择器优先级及嵌套关系的更多相关文章
- 基础选择器,长度与颜色,标签display,嵌套关系,盒模型,盒模型布局
css基础选择器 # *(统配选择器): 控制html, body,以及body下所有用于显示的标签 # div(标签选择器): 该标签名对应的所有该标签 # .(class选择器)(eg: .div ...
- 前端,基础选择器,嵌套关系.display属性,盒模型
基础选择器 1.统配选择器 控制html,body及body内跟显示相关的标签 *{ width:80px; height:80px; background-color:red; } 2.类选择器 以 ...
- day48 前端高级选择器优先级
复习 1. 基础选择器 标签选择器(div) | 类选择器(.div1) | id选择器(#div2) <div class="div1" id="div2&quo ...
- 【CSS系列-选择器优先级总结】
转:http://www.cnblogs.com/dolphinX/p/3511300.html 容易被忽略CSS特性 CSS初学感觉很简单,但随着学习的深入才感觉CSS的水由多深,平常总会遇到各 ...
- 一天搞定CSS: CSS选择器优先级--08
选择器优先级:是指代码的执行顺序 通俗的说,就是多个选择器同时对一个标签分别添加样式,那么这个标签显示那个选择器设置的样式 1.优先级规则 2.规则1和2说明 优先级相同,谁后谁优先 优先级不同,优先 ...
- 深入理解CSS选择器优先级
题外话 今天把 <CSS REFACTORING>(中文名叫<CSS重构:样式表性能调优>)电子书粗略的浏览了一遍,这本书很薄,150页左右,首先是介绍了什么是重构并举了两个简 ...
- 盒子总结,文本属性操作,reset操作,高级选择器,高级选择器优先级,边界圆角(了解),a标签的四大伪类,背景图片操作,背景图片之精灵图
盒子总结 ''' block: 设置宽高 1.没有设置宽,宽自适应父级的宽(子级的border+padding+width=父级的width) 2.没有设置高,高由内容撑开 设置了宽高 一定采用设置的 ...
- 导航栏布局时遇到的问题以及解决办法 css选择器优先级
得到的导航栏效果 添加#menu ul li{width:30px;} 效果如图 将会使列表项和分隔区域的宽度同时改变因为id选择器的优先级高于类选择器,此时应该为列表项添加内联样式如图 才能得到如下 ...
- 前端CSS css引入方式 css选择器 css选择器优先级
一. CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 当浏览器读到一个样式表,它就会按照这个样式表 ...
随机推荐
- JS将图片转为base64
var getDataFromImg = function(img) { var canvas = document.createElement('canvas'); var context = ca ...
- Reduce TIME_WAIT
see time wait number netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n vi /etc/sysctl.conf ...
- Plickers——教师拿手机、学生拿卡片,就可以完成即时全员互动!
全员互动.立刻反馈.无设备添加.无能耗增加,风靡全球教育界,杭州师范大学硕士生导师杨俊锋教授推荐!老师拿手机,学生拿卡片就可以完成! 操作方法: 1.注册:登录www.plicke ...
- 工控随笔_04_西门子_解决Step 7软件因授权问题不能打开的方式和方法
西门子的软件是授权软件,只有经过授权认证的用户才能使用,如果没有通过授权认证则不能 正常的使用软件的相关功能. 一.西门子授权不成功问题 如上图所示报故障代码: 000001-0505.报警文本为:未 ...
- 关于java的动态代理
给目标对象提供一个代理对象.有代理对象控制目标对象的引用. 1.间接的访问目标对象: 2.对原有的业务增强: 比如:Spring的注解: Mybatis同过mapper接口访问数据库 静态代理: 遵循 ...
- c++ auto 属性
auto 指定符(C++11 起) C++ C++ 语言 声明 对于变量,指定其类型将从其初始化器自动推导而出. 对于函数,指定其返回类型是尾随的返回类型或将从其 return 语句推 ...
- Java笔记Spring(六)
web.xml各节点加载顺序 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=&q ...
- Win 10更新版1709有哪些新功能值得关注!
windows 10秋季创意者更新版1709发布已经有段时间了,也有很多用户选择升级这次更新的系统.那么,这次Win 10 更新版1709有哪些新功能值得关注呢?下面,一起随主机吧来看一看吧! 1. ...
- 数据库新增“自动添加”类字段 auto_now_add 如何不影响之前数据
django 中的模版为例:time = models.DateTimeField('创建时间', auto_now_add=True)这样显然是不行的.那么.我们可以考虑先给前面数据一个默认值迁移一 ...
- vue简单的导航栏
<style> img{ display:block; margin:0 auto; width:500px; height:500px; } #app li{ list-style: n ...