CSS(层叠样式表)

目录

一、CSS样式

二、选择器

三、CSS的三大特性:

四、盒子模型:

五、css布局的三种机制:


一、CSS样式

1、行内样式

在标签中使用html属性"stye"来引用css样式,尽量少写,行内样式只在该标签中有效

2、内嵌样式:

在本页面的head中的<style></style>标签中书写,内嵌样式的作用范围就是本页面

3、外部样式:

建立独立的样式文件来书写css样式:*.css

在页面中引用该样式文件:

<link type="text/css" rel="stylesheet" href="css样式名">

好处:作用范围最宽广;大批量的复用;

html内容和样式分离,有利于开发过程各个职位分工合作

二、选择器

1、标签选择器:标签名 选取规则:以选择器名作为标签名的标签  效果:所有同类标签同一种外观

 2、类选择器:.类名 如class="big"   .big   选取规则:标签中的class是否等于类名   效果:同一种标签不同外观,不同标签同一种外观

3、id选择器:#id名   选取规则:标签的id值是否等于id名  效果:页面中唯一

4、通配符选择器:*    用来统一设置页面中全部字大写,内外边距

                *{

                    margin:0;       /*外边距*/

                    padding:0;      /*内边距*/

                }

5、后代选择器:父选择器 子选择器 (如:main p)

6、伪类选择器:a:linked或a:visited,a:hover,

                           效果:超链接+操作的动作

                          a:visited:被点击过的超链接

三、CSS的三大特性:

1、继承性:子标签可以继承父标签的一些css属性:text-,font-,line-,color

                    适当利用一些代码,减少重复性代码

2、覆盖性:如果有多个选择器选取了同一个网页元素,

 css属性表现为:没有冲突则层叠,

                           有冲突:若选择器名相同,则后面覆盖前面,就近原则

3、优先级:                     选择器名不相同,则需要确定优先级---计算权重值(权重值大的优先)

选择器权重值(分4部分,代表权重级别,不能计算进位)
继承或* 0,0,0,0(无权重)
标签0,0,0,1(1个权重)
类,伪类 0,0,1,0
id  0, 1, 0, 0
行内样式1,0,0,0
!important无限大

            !important   无限大   [在css样式的属性值后加!improtant(color:red!improtant)]

            注意 :.nav a复合选择器,应该拆开相加权重

                          0,0,1,0+0,0,0,1=0,0,1,1

                          先比较左边,再比较右边

四、盒子模型:

 

边框:border:border-width|border-style|border-color  如:border:3px solid red;

border-width:边框粗细

border-style:边框线的形状

              none:没有边框线

              solid:实线

              dotted:点画线

              dashed:虚线

              double:双实线

border-top:上边框

border-left:左边框

border-right:右边框

border-bottom:下边框

border-collapse:边框线合并,表格和单元格的边框线进行合并

padding:内边距(内容和边框之间的距离)

效果:将内容反方向挤动,撑大盒子

1个值,上下左右

2个值  上下  左右

3个值  上 左右  下

4个值  上 右 下 左

若只设置一个方向的内边距:padding-top|padding-left|padding-right|padding-bottom

内边距会撑大盒子,解决办法:设置盒子宽高,用盒子宽高减去相应的内边距值

padding不撑大盒子的情况:一开始没有设置盒子的宽高

margin属性用于设置外边距,margin就是控制盒子与盒子之间的距离

margin-

margin-top|margin-left|margin-right|margin-bottom

块级元素水平居中:1,设置了width 2.margin设置auto

网页元素中有默认的内外边距且数值不一样,造成css困扰,一般先清除默认内外边距

清除操作:

*{

    margin:0;

    padding:0;

}

注意:行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距

盒子中的文字水平居中text-align:center

块级盒子水平居中,左右margin:0 auto

根据稳定性,优先使用宽度,其次使用内边距,再次外边距

外边距合并:

使用margin定义块元素的垂直外边距时,可能会出现外边距合并

                1、相邻块元素垂直外边距的合并

                            解决办法:尽量只给一个盒子添加margin值

                2、嵌套块元素垂直外边距的合并(塌陷)

                        对于两个嵌套关系的块元素,如果父元素没有上内边距及边框

                        父元素的上外边距会与子元素的上外边距发生合并

                        合并后的外边距为两者中的较大者

    解决办法:1>可以为父元素定义上边框

                      2>可以为父元素定义上内边距

                      3>可以为父元素添加overflow:hidden

                      或其他办法,如浮动,固定,绝对定位

五、css布局的三种机制:

1、普通流(标准流)

    块级元素独占一行,从上而下排列

    div hr p h1-h6 ul ol dl form table

    行内元素按照顺序从左到右排列,碰到父元素边缘则自动换行

    span a img i

2、浮动float:left|right|none;

    让盒子从普通流脱离标准流的控制,移动到指定位置

作用:让多个div水平排成一列,使得浮动成为布局的重要手段

           可以实现盒子的左右对齐等等

      display:inline-block会造成盒子之间有边距,不容易消除

浮动元素与兄弟盒子的关系:

    在一个父级盒子中,如果前一个兄弟盒子是:

        1>浮动的,则当前盒子会与前一个盒子顶部对齐

        2>普通流,则当前盒子会显示在前一个兄弟盒子的下方

    浮动只会影响当前的或者后面的标准流盒子,不会影响前面的标准流

如果一个盒子里面有多个盒子,如果其中一个盒子浮动了,其他盒子也要设置浮动

清除浮动:clear:left|right|both(清除左或右或全部)

why清除浮动?父盒子很多情况下不方便给高度

浮动布局解决什么问题?
        (1)很多情况下,如果我们使用了float特效,出现margin,padding设置不能正确显示

                浮动会导致父级子级之间设置了padding,导致了属性不能正常传达,导致margin不能正常显示,所以我们要清除浮动。 
        (2)导致背景不能显示

                如果对父级设置了背景属性,导致父级不能撑开,会影响到背景图片不能正常打开。
        (3)边框不能撑开

            由于子级使用了浮动效果,
            并且已经产生了浮动,父级不能撑开,所以影响边框不会随着内容的变化而变化。

方法:1、额外标签法(隔墙法):通过在浮动元素末尾添加一个空的标签,例如<div style="clear:both"></div>或其他标签br等亦可

           2、父级元素添加overflow:hidden|auto|scroll(滚动)

3、定位:定位=定位模式+边偏移

           边偏移用top,bottom,left,right表示偏移值

           定义元素相对于父元素上下左右偏移

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

    static静态定位是元素的默认方式,无定位的意思,相当于border里面的none,不要定位的时候用

        按照标准流特性摆放,没有边偏移,几乎不用

    relative相对定位是元素相对于它原来在标准流中的位置来说的

    absolute绝对定位是元素以带有定位的父级元素来移动位置(拼爹型)

        1.完全脱标——完全不占位置

        2.父元素没有定位,则以浏览器为准定位

    fixed固定定位是绝对定位的一种特殊形式

        1.完全脱标——完全不占位置

        2.只认浏览器的可视窗口——"浏览器可视窗口+边偏移属性"来设置元素的位置

        例如:

        实现子盒子在父盒子上面

             父: position:relative;

             子: position:absolute;

                     top:0;

                     left:0;*/

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值