---恢复内容开始---

一继承性

  1.继承: 给父级设置一些属性,子级继承了父级的该属性,这就是我们的css中的继承。

  2. 可继承: color 、 font-*(size)、 text-*(decoration:underline)、line-*(height)  行高 等可以继承(主要是文本级的标签元素)    (a比较特殊)

  3.不可继承 :但是像一些盒子元素属性,定位的元素(浮动,绝对定位,固定定位)不能继承。

二.层叠性

  层叠性 : 权重大的标签覆盖掉了权重小的标签  (数  id选择器   类选择器   标签选择器各自的数量)

  1.针对于选中的标签谁权重大显示睡的属性; 

简易版 

  1. /*1 0 0 */显示红色
  2. #box{
  3.  
  4. color: red;
  5. }
  6. /*0 1 0*/
  7. .container{
  8. color: yellow;
  9. }
  10. /*0 0 1*/
  11. p{
  12. color: purple;
  13. }
  1. 复杂版
    1 <div id='box1' class="wrap1">
  2. 2 <div id="box2" class="wrap2">
  3. 3 <div id="box3" class="wrap3">
  4. 4 <p>再来猜猜我是什么颜色?</p>
  5. 5 </div>
  6. 6 </div>
  7. 7 </div>
  8.  
  9.      #box1 #box2 p{
  10. color: yellow;
  11. }
  12.  
  13. #box2 .wrap3 p{
  14. color: red;
  15. }
  16.  
  17. div div #box3 p{
  18. color: purple;
  19. }
  20.  
  21. div.wrap1 div.wrap2 div.wrap3 p{
  22. color: blue;
  23. }

2.如果权重一样大显示以后设置的属性

  1. 1 #box2 .wrap3 p{
  2. 2 color: yellow;
  3. 3 }
  4. 4
  5. 5 #box1 .wrap2 p{
  6. 6 color: red;
  7. 7 }

3.继承下来的属性权重为0,没资格和选中的标签对比.

  1. #box1 #box2 .wrap3{
  2. color: red;
  3. }
  4.  
  5. #box2 .wrap3 p{
  6. color: green;
  7. }

4.如果权重都为0,谁描述的近,(就是选中到最内层的距离越近) 显示谁的属性.(就近原则)

  1. #box1 #box2 .wrap3{
  2. color: red;
  3. }
  4. .wrap1 #box2{
  5. color: green;
  6. }

5.如果权重为0,描述一样近,回归原始状态,继续数权重.

总结:

  1.先看标签元素有没有被选中,如果选中了,就数数 (id,class,标签的数量) 谁的权重大 就显示谁的属性。权重一样大,后来者居上

  2.如果没有被选中标签元素,权重为0。
如果属性都是被继承下来的 权重都是0 。权重都是0:"就近原则" : 谁描述的近,就显示谁的属性

补充:

!important 的使用。

!important:设置权重为无限大

!important 不影响继承来的权重,只影响选中的元素。不要随便使用!important,因为使用它会影响页面的布局

三.盒模型:(box model)

(一).定义

  "box model"这一术语是用来设计和布局时使用,然后在网页中基本上都会显示一些方方正正的盒子。我们称为这种盒子叫盒模型。

(二).类型:  标准模型(重点)  和 IE 模型

(三) 盒模型示意图:

(四).盒模型的属性(标准模型)

1.width  内容的宽度

2.height  内容的高度

3.padding: 内边框  边框到内容的距离  (描述父子盒子的关系)

  padding: (一个值)  设置上下左右

  padding: (两个值)  第一个值是上下宽度,第二个值是左右距离

  padding: (三个值)  第一个是上方的宽度,第二个是左右的值,第三个是下方的值

  padding: (四个值)  分别指代上右下左的值(顺时针)

4.border :边框,就是指盒子的边框

(1))三个要素:

  5px: 边框的粗细

  solid: 线性样式

注意

  color: 颜色.

  none (0) 指消除边框

如果颜色不写,默认是黑色。如果粗细不写,不显示边框。如果只写线性样式,默认的有上下左右 3px的宽度,实体样式,并且黑色的边框。

(2)写法

border-width : 3px

border-style : solid    (dotted, double双下划,dashed虚线)

border-color : red

(3)按方向划分

  1. border-top-width: 10px;
  2. border-top-color: red;
  3. border-top-style: solid;
  4.  
  5. border-right-width: 10px;
  6. border-right-color: red;
  7. border-right-style: solid;
  8.  
  9. border-bottom-width: 10px;
  10. border-bottom-color: red;
  11. border-bottom-style: solid;
  12.  
  13. border-left-width: 10px;
  14. border-left-color: red;
  15. border-left-style:solid;

上面12条语句,相当于 bordr: 10px solid red;

另外一种写法:

  1. border-top: 10px solid red;
  2. border-right: 10px solid red;
  3. border-bottom: 10px solid red;
  4. border-left: 10pxb solid red;

(4).用border 来制作小三角

  1. div{
  2. width: 0;
  3. height: 0;
  4. border-bottom: 20px solid red;
  5. border-left: 20px solid transparent;
  6. border-right: 20px solid transparent;
  7. }

5.margin 外边距,盒子边框到最近盒子的距离.   (描述兄弟盒子的关系)

(1).margin塌陷问题:  (垂直方向  解决办法: 只设置一个即可)

 当给两个标准流下兄弟盒子 设置垂直方向上的margin时,那么以较大的为准,那么我们称这种现象叫塌陷 .

当我们给两个标准流下的兄弟盒子设置浮动之后,就不会出现margin塌陷的问题

(2)margin : 0 auto

  当一个div元素设置margin:0 auto;时就会居中盒子,那我们知道margin:0 auto;表示上下外边距离为0,左右为auto的距离,那么auto是什么意思呢?

  设置margin-left:auto;我们发现盒子尽可能大的右边有很大的距离,没有什么意义。当设置margin-right:auto;我们发现盒子尽可能大的左边有很大的距离。当两条语句并存的时候,我们发现盒子尽可能大的左右两边有很大的距离。此时我们就发现盒子居中了。

使用margin:0 auto;注意点

  1.使用margin: 0 auto;水平居中盒子必须有width,要有明确width,文字水平居中使用text-align: center;

  2.只有标准流下的盒子 才能使用margin:0 auto (当一个盒子浮动了,固定定位,绝对定位(后面会讲),margin:0 auto; 不能用了)

  3.margin:0 auto;居中盒子。而不是居中文本,文字水平居中使用text-align: center

总结:善于使用父亲的padding,而不是margin 

标准流下的盒子;

  父子间调整位置使用padding

  margin的塌陷要避免,只设置一个方向

实现如图效果 

坑 :

  因为父亲没有border,那么儿子margin-top实际上踹的是“流” 踹的是行,所以父亲掉下来了,一旦给父亲一个border发现就好了。

解决方案:

  我们不可能在页面中无缘无故的去给盒子加一个border,所以此时的解决方案只有一种。就是使用父亲的padding。让子盒子挤下来。

四.标准文档流

1.宏观:

  宏观的将,我们的web页面和ps等设计软件有本质的区别,web 网页的制作,是个“流”,从上而下 ,像 “织毛衣”。而设计软件 ,想往哪里画东西,就去哪里画

2.微观现象

(1)空白折叠现象

  个空格会被合并成一个空格显示到浏览器页面中。img标签换行写。会发现每张图片之间有间隙,如果在一行内写img标签,就解决了这个问题,但是我们不会这样去写我们的html结构。这种现象称为空白折叠现象。

(2)高矮不齐,底边对齐

  文字还有图片大小不一,都会让我们页面的元素出现高矮不齐的现象,但是在浏览器查看我们的页面总会发现底边对齐

(3)自动换行,一行写不满,换行写

  如果在一行内写文字,文字过多,那么浏览器会自动换行去显示我们的文字。

五.浮动元素 对行内元素和块元素的影响:

  1.如果标准流下的标签浮动,定位(绝对定位,固定定位)了,不区分是行内还是块级元素

  可以任意的设置宽高.

  2.浮动对块级元素的影响,像把块元素转化成行内元素.

  3.浮动不做压盖现象.

---恢复内容结束---

python全栈开发 * 继承性 层叠性 盒模型 标准文档流 * 180809的更多相关文章

  1. CSS层叠的问题、标准文档流、伪类选择器

    一.层叠的问题 CSS有两个性质: 1.继承性 2.层叠性:选择器的一种选择能力,谁的权重大就选谁 层叠性又分为: 1).选不中:走继承性  (font.color.text.) 继承性的权重是0 若 ...

  2. python全栈开发,Day44(IO模型介绍,阻塞IO,非阻塞IO,多路复用IO,异步IO,IO模型比较分析,selectors模块,垃圾回收机制)

    昨日内容回顾 协程实际上是一个线程,执行了多个任务,遇到IO就切换 切换,可以使用yield,greenlet 遇到IO gevent: 检测到IO,能够使用greenlet实现自动切换,规避了IO阻 ...

  3. Python全栈 Web(边框、盒模型、背景)

    原文地址 https://yq.aliyun.com/articles/634926 ......................................................... ...

  4. python全栈开发day39-CSS继承性和层叠性、权重问题、盒模型和其属性、文本级标签和块级标签、浮动

    一.上次内容回顾 1.CSS的三种引入方式: 行内式 内接式 外接式 链接式 导入式 2.基础选择器和高级选择器 1)标签选择器 p{} 2)  id选择器 #nva{} 3) 类选择器 .nva{} ...

  5. python 全栈开发,Day48(标准文档流,块级元素和行内元素,浮动,margin的用法,文本属性和字体属性)

    昨日内容回顾 高级选择器: 后代选择 : div p 子代选择器 : div>p 并集选择器: div,p 交集选择器: div.active 属性选择器: [属性~='属性值'] 伪类选择器 ...

  6. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  7. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  8. 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂

    Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...

  9. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

随机推荐

  1. 时间序列函数resamlpe详解

    resample与groupby的区别:resample:在给定的时间单位内重取样groupby:对给定的数据条目进行统计 函数原型:DataFrame.resample(rule, how=None ...

  2. 解压unzip的用法

    1.把文件解压到当前目录下 [root@instance-q6z0ksfb xmerge_test]# unzip db1.zip 2.把文件解压到指定的目录下,需要用到-d参数. unzip -d ...

  3. SpringBoot实战——微信点餐系统

    1.初始化项目 引入模块 <dependencies> <dependency> <groupId>org.springframework.boot</gro ...

  4. 6.linux安装tomcat

    1.下载安装包 https://tomcat.apache.org/download-80.cgi       2.用 WinSCP 将本地的安装包 上传到 linux 服务器中   3.解压安装包( ...

  5. python常用校验方法总结

    0x00 校验一个字符串是否是合法IP地址 ipv4举例:利用正则表达式来匹配 def checkip(ip): p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d ...

  6. 微信app支付的坑

    app支付商户申请,需注册并认证开放平台账号后电脑端登录开放平台官网:open.weixin.qq.com,[管理中心]->[移动应用],选择需要申请支付的应用,点击[查看]->[微信支付 ...

  7. Spring系列(二) Bean装配

    创建应用对象之间协作关系的行为称为装配(wiring), 这也是DI的本质. Spring中装配Bean的方式 Spring提供了三种装配Bean的方式. 隐式的Bean发现机制和自动装配 Java ...

  8. blinker库

    参考 Blinker Documentation Blinker 是一个基于Python的强大的信号库,它既支持简单的对象到对象通信,也支持针对多个对象进行组播.Flask的信号机制就是基于它建立的. ...

  9. Django ----- app 和 ORM的操作和介绍

    创建APP ORM 介绍 ORM的操作 说明一下 GET 和 POST 的区别: , GET ①获取一个页面 ②提交数据 数据显示在URL ?user=alex&pwd=alexdsb ,PO ...

  10. Mysql -- 数据类型(2)

    掌握char类型和varchar类型 掌握枚举类型和集合类型 字符类型 #官网:https://dev.mysql.com/doc/refman/5.7/en/char.html #注意:char和v ...