CSS注意事项(二)

不打扰是莪最后的温柔 提交于 2019-12-16 17:57:25

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

选择器

标签选择器(学会灵活应用)

单个标签 直接使用标签名 
多个标签 复杂选择器 
div p 选择div内部的所有p元素 
div > p 父元素为div的所有p元素 
li + li 紧接在li之后的li元素 
p ~ ul 选择前面有p元素的每个ul元素

比如对多个li添加下划线 
可直接使用

ul li+li{

border-top:1px solid #ccc;

}

id/class选择器 略过

属性选择器

  • 属性名选择 img[title]含有title属性的img标签
  • 属性名+属性值的选择器 比如 
  • input[type='text']{ 
    }

     

伪类和伪元素

伪类

  • UI 伪类
  • a:link 
    a:hover 
    a:activted 
    a:visited

     

a标签的四个伪类排列顺序和原因

link指有链接属性时 visited 链接地址已经被访问过 active 被用户激活 hover鼠标悬停

根据使用情景确定a状态

  • 未被操作时 具备link属性
  • 鼠标经过时 hover和link两个属性
  • 鼠标点击时 具有link hover active
  • 访问完成 具有link visted hover 三种状态 
    区分hover visited 以及link三种样式即可 
    四者样式顺序:link visited hover active

    原因:link和visited为静态常态,但一旦被访问应该覆盖原样式 
    在鼠标操作时,a标签同时具备hover 和active 状态 所以active必须放在hover之后

  • 结构化伪类 
    比如:
  • table tr:nth-child(even){} 
    table tr:nth-child(odd){} 
    table tr:first-child{} 
    table tr:last-child{} 
    table tr:nth-child(2n+1)

     

伪元素

:before 和 :after非常常用 
例如:

<style>

span:before{

content:'你好,'

}

span:after{

content:'!'

}

</style>

<span>Shirly</span>

选择器优先级

使用注意:

  • 尽量对外层添加class, 内层使用多级选择器,降低初步布局样式的优先级以便js处理

首先明确选择器表达式的重要程度。 
公式: I-C-E 


I–id —–C-class —— E-element 

遇到一个id就往特指度数值中加100,遇到一个class就往特指度数值中加10,遇到一个element就往特指度数值中加1
还有一个重点要注意:!important优先级最高,高于上面一切。* 选择器最低,低于一切。

盒子模型

  • 盒子宽度包括:padding+margin+boeder+内容
    • div默认为block 内容宽度会因为 padding或margin 宽度变化而变化
  • 包裹内容(本身不定义宽度) 盒子宽度=内容宽度+padding+margin
    • div display:table 
      我们设定的宽度为盒子内容宽度,怎么解决问题? 
      建议要领:给div添加下面的属性即可实现设定的宽度即为盒子宽度。
box-sizing:border-box;

纵向margin重叠问题

纵向的margin会重叠,值较大的覆盖掉较小的。

利用div的boder画小三角

div{

border:10 solid;

border-color:#444 transparent transparent transparent ;

width:0;

}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!