css学习笔记

选择器:

1.标签选择器

2.类选择器

 

3.id选择器

 4.通配符选择器

 

字体属性:

 

 文本属性:

  

  文字居中:文字居中,可让line-height行高等于盒子高度

css引入方式:

 

快速生成html标签

 

 

css的复合选择器

1.后代选择器

2.子选择器

3.并集选择器

4.链接伪类选择器(a链接在浏览器有默认样式,要给链接单独指定样式)

 5.focus伪类选择器

 

 css的元素显示模式:

 css的背景:

 

 

 

 

css三大特性:层叠性、继承性、优先级
          层叠性:相同选择器设置相同样式,就近原则执行离结构近的样式
          继承性:子标签继承父标签的某些样式。文本颜色和字号等(text-,font-,line-,color属性)     
          继承的权重为0           权重叠加不会进位

 

盒子模型:

           border-width: 5px;      边框的粗细 
           border-style: solid;      边框的样式  solid 实线边框  dashed  虚线边框  dotted  点线边框 
           border-color: pink;         边框的颜色 
           border: 1px  solid  red;   边框简写,没有顺序 

           border:  1px solid red ;    层叠性只有上边框变成了蓝色
           border-top: 1px  solid  blue; 
           border-collapse: collapse;  collapse合并 相邻单元格共用一个边框    separate分隔 每个单元格有独立边框
         边框会影响盒子大小,要加上左右两个边框
圆角边框:border-radius:length;

简写属性(顺时针)左上角,右上角,右下角,左下角,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,

 

 

 

如果是正方形,设置成圆就把数值改成高度或者宽度的一般就好,或者直接写50%

如果是个矩形,设置成高度的一半就好

内边距padding:
          padding设置内边距,边框和内容之间的距离;padding left,right,top,bottom
       

           内边距影响盒子大小:  (如果盒子有了宽度高度,再指定内边距会影响盒子实际大小(宽度高度再加上两边内边距大小),解决办法在一开始设置盒子高度宽度减去两边内边距大小)

   内边距不影响盒子大小:如果盒子本身没有指定width/height属性,padding不会撑开盒子大小

 

给固定盒子宽度不合适:例如盒子适合放四个子,但是放两个字就有点大;解决办法:不给盒子宽度,只设置四个字和两个字的内边距相等

外边距margin:

设置外边距,控制盒子盒子之间距离:margin left,right,top,bottom,简写方式和padding完全一致

外边距让块级盒子水平居中满足两个条件:1.盒子指定了宽度  2.盒子的左右外边距都设置为auto    (最常用)margin:0   auto;   margin:auto;margin-left:auto;margin-right:auto;

让行内元素或者行内块元素水平居中是给其父元素添加text-align:center即可

相邻块级元素垂直外边距的合并:(解决方案:尽量只给一个盒子添加margin值)

上下两个兄弟块级元素,上面块级元素有下外边距margin-bottom,下面块级元素有上外边距margin-top,它们两个块级元素合并后的间距是两个值中较大的间距。      

嵌套块元素垂直外边距的塌陷:

对于两个嵌套(父子)关系的块元素,父元素和子元素都有上外边距,此时父元素会塌陷较大的外边距值。

解决方案(1.为父元素定义上边框  2.父元素定义上内边距   3.为父元素添加overflow:hidden

清除内外边距:

*{

margin:0;

padding:0;

}

行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上线内外边距,转换为块级元素和行内块元素就可以了

盒子阴影:box-shadow,不占用空间,不影响其他盒子排列

h-shandow   必需,水平阴影的位置

v-shandow    必须,垂直阴影的位置

blur:            可选,模糊距离

spread:        可选,阴影的尺寸

color:    可选,阴影的颜色

insert:           可选,将外部阴影改为内部阴影,注意:默认是outset外阴影,但不可以写outset否则导致阴影无效

文字阴影:text-shadow

h-shadow:必需,水平阴影的位置

v-shadow:必需,垂直阴影的位置

blur:可选,模糊的距离

color:可选,阴影的颜色

浮动:

css三种传统布局方式:普通流(标准流),浮动,定位(实际开发基本都是包含了这三种布局方式)

普通流(标准流):标签按照规定好默认方式排列,最基本的布局方式

浮动:选择器{float:属性值:none(默认值),left,right}

网页布局第一准则:标准流负责多个块级元素纵向排列,浮动负责多个块级元素横向排列

为什么需要浮动:很多效果标准流无法完成,浮动可以改变元素标签默认的排列方式

什么是浮动:float属性用于创造浮动框,将其移动到左边缘或右边缘触及包含快或另一个浮动框的边缘

浮动特性: 

1.浮动元素会脱离标准流的控制(浮)移动到指定位置(动)(脱标)

2.浮动的盒子不再保留原先的位置

3.浮动元素一行:

显示多个盒子都设置了浮动,会按照属性值一行内显示并且顶端对齐,浮动元素无缝隙贴靠在一起,如果父级宽度装不下这些浮动盒子,多出的盒子另起一行对齐

4.浮动元素具有行内块元素的特性:

任何元素不管之前是什么模式,加了浮动后都具有行内块元素的特性,盒子大小由内容来决定

如果行内元素有了浮动,就不需要转换为块级或者行内块元素就可以直接给高度和宽度了

如果块级盒子没有设置宽度,默认宽度和父级一样宽,添加浮动后大小根据内容来决定

5.浮动元素经常和标准流父级搭配使用:

先用标准流的父元素排列上下位置,之后内部子元素浮动排列左右位置

6.一个元素浮动了,理论上其余的兄弟元素也要浮动;浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流

 为什么要清除浮动:

由于父盒子很多情况下不方便给出具体高度(子盒子自动撑开),子盒子浮动后不占有位置,父盒子高度为0,影响下面的标准流盒子 

清除浮动本质:

清除浮动元素脱离标准流造成的影响

清除浮动策略:

闭合浮动,只让浮动在父盒子内部影响,不影响外边的其他盒子(关起门来收拾)

清除浮动方法:(选择器{clear:属性值(left,right,both常用)}  )

1.额外标签法:

缺点:影响整体结构,结构和表现没有分离,添加许多无意义标签 

优点:但通俗易懂书写方便

在最后一个浮动的子元素后面添加一个额外空标签(必须是块级元素独占一行),然后添加浮动样式

 2.父级添加overflow:(选择器{overflow:属性值(hidden、auto、scroll)})

缺点:无法显示溢出部分,会切掉

优点:代码简洁

3.after伪元素法:(额外标签法的升级版,给父元素添加)

优点:没有增加标签,结构更简单

缺点:照顾低版本浏览器

      .clearfix:after{

      content:"";

   display:block;    //默认是行内元素,转化为块级元素

   height:0;

   clear:both;

   visibility:hidden;

  }

      .clearfix{

    *zoom: 1;      //照顾低版本浏览器

}

4.双伪元素清除浮动:(给父元素添加)

优点:代码更简洁               缺点:照顾低版本浏览器

 .clearfix:before,.clearfix:after {

              content:"";

           display:table;

  }

..clearfix:after {

                clear:both;

}

.clearfix{

    *zoom: 1;      //照顾低版本浏览器

}

 

定位

1.定位=定位模式+边偏移(指定元素在文档中的定位方式、决定元素的最终位置)

定位模式:静态定位(static)、相对定位(relative)、绝对定位(absolute)、固定定位(fixed)

边偏移:top、bottom、left、right

2.静态定位:选择器{position:static;}

元素的默认定位方式,无定位的意思

静态定位按照标准流特性摆放位置,没有边偏移,布局很少用到

**3.相对定位:选择器{position:relative;}

a.相对于自己原先位置移动的

b.原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它(不脱标,继续保持在原来位置)

 

 

** 4.绝对定位:选择器{ position:absolute; }

元素移动位置时候,相对于它祖先元素

a.如果没有祖先元素或者祖先元素没有定位,以浏览器为准定位(Document文档)

b.如果祖先元素有定位(相对,绝对,固定定位),则以最近一级的有定位祖先元素为参考点移动位置

 c.绝对定位不再占有原先的位置(脱标)

 

 5.子绝父相:子级绝对定位,父级相对定位

a.子级绝对定位,不占位置,可以放到父盒子的任何位置并且不影响其他的兄弟位置

b.父盒子布局时要占有位置(要不然后面的盒子会占掉脱标后的父盒子位置,不能绝对定位)只能是相对定位,父盒子加定位后限制子盒子在父盒子里面显示

 

相对定位经常用来作为绝对定位的父级

总结:子盒子不需要占位置绝对定位,父盒子需要占位置相对定位

**6.固定定位:  选择器{ position: fixed; }

固定定位是元素固定于浏览器可视区的位置

a.以浏览器可视窗口为参照点移动元素(和父元素无关,只和可视窗口)

b.固定定位不再占有原先的位置,也是脱标的,可以看成特殊的绝对定位

 

小技巧:固定在版心右侧位置

a.让固定定位的盒子left:50% ;                                          走到版心的一般位置

b.让固定的盒子margin-left:版心宽度的一般距离 ;            多走版心宽度的一半位置,就右侧贴合了

  

 7.粘性定位:选择器{ position :sticky ;top :10px; }

a.以浏览器的可视窗口为参照点移动元素

b.粘性定位占有原先的位置

c.必须添加top,left,right,bottom其中一个才有效

跟页面滚动搭配使用,兼容性较差,IE不支持 

8.定位叠放顺序:选择器{ z-index:1; }

单位布局时出现盒子重叠的问题,可以用z-index来控制盒子的前后次序

a.数字可以是正整数,负整数,0,默认是auto,数值越大盒子越靠上,数字后面不能加单位

b.如果属性值相同,则按照书写顺序,后来者居上

c.只有定位的盒子才有z-index属性

9.绝对定位的盒子居中:

加了绝对定位的盒子不能通过margin:0 auto水平居中

a.left:50% ;                 让盒子的左侧移动到父级元素的水平中心位置

b.margin-left: 盒子宽度一半的数值;    让盒子向左移动自身宽度的一半

10.定位的特殊性:

a.行内元素添加绝对或者固定定位,可以直接设置高度和宽度

b.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小

c.脱标的盒子(浮动元素,绝对定位(固定定位) )都不会引起外边距合并的问题(外边距塌陷)

11.绝对定位(相对定位)和浮动元素下的文字

a.浮动元素只会压住下面标准流的盒子,不会压住下面标准流盒子里面的文字(图片),浮动产生的最初目的就是做文字围绕效果的

 b.绝对定位(相对定位)会压住下面标准流的所有内容

 

元素的显示和隐藏:

本质:让一个元素在页面中隐藏或者显示出来

display属性:

display:none;  隐藏对象,隐藏后不再占有原有位置

display:block;  显示元素(还有转换为块级元素)

visibility可见性:

visibility:visible; 元素可视 

visibility:hidden; 元素隐藏,隐藏后继续占有原有位置

overflow溢出:

visible:不剪切内容也不添加滚动条

hidden:将超出的内容隐藏

scroll:不管有没有超出内容,总是显示滚动条

auto:超出自动显示滚动条,不超出不显示滚动条

 

    

 

 

 

 

posted @ 2020-07-26 00:31  前端小白白又白  阅读(164)  评论(0)    收藏  举报