当前位置: 首页 > news >正文

CSS小知识点-1

display:inline 在同一行,并且宽度就等于文字内容的宽度且设置宽度无用 display:inline-block 既有行级元素的特性,也有块级元素的特性,因此在同一行,能设置宽高,margin,padding
display:block 块级元素会自动换新行,占领一行,可以设置宽高,margin,padding

引入css的2种方式
link 语法结构 <link href="CSSurl路径" rel="stylesheet" type="text/css" /> 实例 <head><link href="https://i.cnblogs.com/123456.css" rel="stylesheet" type="text/css" /></head>
@import
语法结构 @import + 空格+ url(CSS文件路径地址); 实例 在html中 <style type="text/css">@import url(CSS文件路径地址);</style> 在css中 @import url(CSS文件路径地址);

神奇的伪元素, css有一系列的伪元素,如:before,:after,:first-line,:first-letter等
http://www.cnblogs.com/wonyun/p/5807191.html
:before 标签前面增加 :after 标签后面增加 :first-line 标签内容第一行样式 :first-letter 标签内容第一个字母

CSS选择符以及优先级计算

行内样式(Inline Style),如<span style="color:red">...</span>;
ID选择符(ID selectors),如#myid;
类、属性选择符、伪类(Classes, attributes and pseudo-classes),如 .class {...}、[href$=dudo.org]、:hover;
类型(elements)、伪类型选择符(pseudo-elements),如 p {...}、:first-line {...};

他们的优先级怎么来测量呢?如前所述,它们每一类都有不同的数值表示,其中:
行内样式为:1000
ID选择符为:0100
类选择符为:0010
类型选择符为:0001
这里要指出的是,所有这些数值都不是10进制数字,1000只是代码,它是一个行内样式,

例如,body #wrap p {...},那么它的优先级指数就是 1+100+1=102,而body div #wrap p {...}的优先级指数就是 1+ 1 +100 + 1 =103。
再看一下其它的例子:
* { } 0
li:first-line { }      2 (one element, one pseudo-element)
ul ol+li { }           3 (three elements)
ul ol li.red { }     13 (one class, three elements)
style=””        1000 (one inline styling)
div p { }                2 (two HTML selectors)
div p.sith { }      12 (two HTML selectors and a class selector)
body #darkside .sith p { }    112 (HTML selector, id selector, class selector, HTML selector; 1+100+10+1)

看这段代码:

<html>
<head>
<style type="text/css">
       #wrap #content {color: blue;}
       #content {color: red;}
</style>
</head>
<body>
<div id="wrap">
      <div id="content">this is a text here</div>
</div>
</body>
</html>

 

代码将显示蓝色。

CSS机制: 继承,层叠,特指

一个简单的记分规则,即对每个选择符都要按下面的 ICE 公式计算三个值:I-C-EID-Class-Element)

针对这个公式的计分办法如下:
1.选择符中有一个ID,就在I的位置加1;
2.选择符中有一个类,就在C的位置加1;
3.选择符中有一个元素(标签)名,就在E的位置上加1;
4.得到一个三位数。

 

P{}                                   //0-0-1 特指度=1
p.largetext{}                         //0-1-1 特指度=11
p#largetext{}                         //1-0-1 特指度=101
body p#largetext{}                    //1-0-2 特指度=102
body p#largetext ul.mylist{}          //1-1-3 特指度=113
body p#largetext ul.mylist li{}       //1-1-4 特指度=114

 

查理版简单层叠要点

规则一: 包含 ID 的选择符胜过包含类的选择符,包含类的选择符胜过包含标签名的选择符。

规则二: 如果几个不同来源都为同一个标签的同一个属性定义了样式,行内样式胜过嵌入样式,嵌入样式胜过链接样式。在链接的样式表中,具有相同特指度的样式,后声明的胜过先声明的。

规则三: 设定的样式胜过继承的样式,此时不用考虑特指度(即显式设定优先)。

下面简单解释一下规则三。

比如下面的标记:

<div id="cascade_demo">
  <p id="inheritance_fact">Inheritance is <em>weak</em> in the Cascade</p>
</div>

 和下面的规则:

div#cascade_demo p#inheritance_fact {color:blue;} 
  • 2 - 0 - 2 (高特指度)

会导致单词 weak 变成蓝色,因为它从父元素 p 那里继承了这个颜色值。

但是,只要我们再给 em 添加一条规则 em {color:red;}

  • 0 - 0 - 1 (低特指度)

em 就会变成红色。因为,虽然它的特指度低(0-0-1),但 em 继承的颜色值,会被为它明确(显式)指定的颜色值覆盖,就算(隐式)遗传该颜色值的规则的特指度高(2-0-2)也没有用。

 

在style属性后面增加 !important 让该属性持有最高的优先级!

 

为什么要清除浮动?

.cc{
  border: 1px solid green;
   //overflow: hidden;
}
<div class="cc">清除浮动的办法<img style="float: left;" src="http://zh.learnlayout.com/images/ilta.png"/></div>

 你会发现图片溢出了DIV容器,这时,我们把//overflow: hidden;注释打开,就会发现已经闭合了浮动效果。

 bootstrap清除浮动代码

.clearfix:after{
         content: '';
         display: table;
         clear: both;
}         
.clearfix{
          *zoom:1;/*兼容ie低版本*/
}

 

<br>的换行样式

br: before{
    content: '\00A';
}
:before, :after{
    white-space: pre-line;
}

br中content:'\00A'其实是在元素内容前面加上换行键,因为换行键的ASCII码是0A;然后设置white-space,这个属性是用来设置对于元素中空格和换行的处理方式,pre-line则表示合并多个空格并且保留换行,所以就达到了换行的效果;如果没有white-space属性设置的话,则不能自动换行。

 

position

relateive: 与自身元素有关

absolute:文档流外,会使inline元素'块'话,定义的top left属性,会递归寻找父元素,如果发现有设置position:relative/absolute/fixed,以这个为参照标准

fixed: 元素的定位永远是相对于浏览器边界的,和其他元素没有关系。但是它具有破坏性,会导致其他元素位置的变化。

<div>1</div>
<div style="position: fixed;">2</div>
<div>3</div>
<div>1</div>
<div>2</div>
<div>3</div>

以上2种显示效果,第一种的 2 会和 3 发生重叠,而第2种则依次排列。

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ldp472258781/p/6401238.html

相关文章:

  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • 快速理解 session/token/cookie 认证方式
  • Pivot Table系列之展开/折叠用法 (Expand/Collapse)
  • hadoop 中什么是slots
  • 构建NCBI本地BLAST数据库 (NR NT等) | blastx/diamond使用方法 | blast构建索引 | makeblastdb...
  • 在一个公司待上多久跳槽最合适?
  • MySQLMySql免安装版安装配置
  • C# Json.Net解析实例
  • 第三方模拟器连接Android studio
  • 什么是TKinter
  • POJ3254 Corn Fields
  • CSS颜色大全
  • Elasticsearch之IKAnalyzer的过滤停止词
  • ubuntu 14.04 安装jdk 1.8
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Computed property XXX was assigned to but it has no setter
  • CSS中外联样式表代表的含义
  • Flannel解读
  • JavaScript设计模式之工厂模式
  • Java教程_软件开发基础
  • js ES6 求数组的交集,并集,还有差集
  • js学习笔记
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • PV统计优化设计
  • vue 配置sass、scss全局变量
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 官方解决所有 npm 全局安装权限问题
  • 后端_ThinkPHP5
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 区块链技术特点之去中心化特性
  • 人脸识别最新开发经验demo
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一道闭包题引发的思考
  • 正则与JS中的正则
  • 阿里云服务器购买完整流程
  • 积累各种好的链接
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $$$$GB2312-80区位编码表$$$$
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (3)(3.5) 遥测无线电区域条例
  • (3)llvm ir转换过程
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (原創) 物件導向與老子思想 (OO)
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .a文件和.so文件
  • .NET 命令行参数包含应用程序路径吗?
  • .Net程序帮助文档制作
  • .NET开源项目介绍及资源推荐:数据持久层
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题