css

作者: 谁还不是个小仙女似的 | 来源:发表于2019-01-21 17:29 被阅读5次

    盒模型

    1.标准盒模型
    盒子的宽度=margin+padding+border+width
    2.ie的盒模型
    盒子的宽度=margin+width
    所以在css3中引入了box-sizing属性,允许改变盒模型计算宽高的方式。

    定位

    文档流有三种定位机制,一种是标准文档流,从上到下,从左到右;第二种float,第三种position

    position

    1.relative
    设置为相对定位的元素本身的位置是保留的,相对它自身偏移,可以为其设置left等值进行偏移
    2.absolute
    设置为绝对定位的元素的位置不保留,被其他元素所占据,相对他的对父级进行定位的元素偏移。
    3.fixed
    类似于absolute,相对浏览器试图窗口进行偏移
    4.z-index
    当position属性值为relative或absolute或fixed的元素上有效,他可以设置元素的层叠顺序,数值越大的层级越往上。

    float

    设置为float的元素会向右或者向左偏移,直到遇到相邻元素或者父元素的边框。

    常见的网页布局

    flex布局

    a链接的状态

    link:超链接的默认样式
    visited:已经访问过的样式
    hover:悬停状态的样式
    active:鼠标按下去那一瞬间的链接样式
    在使用他们的过程中,一定要按着四个状态的先后过程性写:
    a:link->a:hover->a:active->a:visited
    被点击访问过的超链接样式不再具有hover和active了。解决方式是改变css属性的顺序。(linked->visited->hover->active)LV哈

    css的hack

    针对不同的浏览器写的不同的css的code的过程,就是css的

     background-color: blue;
                background-color: red\9; /*  all ie */
                background-color: yellow\0; /* ie8 */
                +background-color: pink; /* ie7 */
                _background-color: orange; /* ie6  */
                :root #test{
                    background: purple\9; /* ie9 */
                }
    

    行内元素和块级元素的区别?

    1.块级元素:独占一行,width/height/padding/margin都可以控控制。h1-h6,div,ul,li,p
    2.内联元素:宽高不可设置。但是adding和margin的left和right是可以设置的.span,em,strong,i
    3.inline-block元素:可以设置宽高,但是不会自动换行。input,img,textera,label

    rgba()和opacity的透明效果区别

    opacity作用于元素,以及元素内的所有内容的透明度,但是rgba只作用于元素的颜色和背景色。

    px和em的区别

    px和em都是长度单位,区别是px是固定的,em的值不是固定的,并且em会继承父级元素的字体大小。

    描述一个“reset”的css文件并使用它,知道normalize.css吗?你了解他们的不同地方吗?

    不同的浏览器对一些元素有不同的默认样式。如果不处理,在不同浏览器下面会有不同的风险。

    scss/less

    他们都是css的预处理器,最后还是将语法编译成css.
    使用原因:结构清晰,便于扩展。完全兼容css代码,可以方便的应用到项目中。

    display:hidden和visiblity:hidden的区别?

    display:隐藏元素但是不挤占该元素原来的空间。
    visiblity:隐藏元素并且挤占该元素原来的空间

    css的content属性

    他主要用域before/after的伪类元素上,用来插入生成内容。

    常见的选择器

    1.元素选择器
    2.id选择器
    3.class选择器
    优先级 id>class>元素

    实现水平竖直居中方式

    方法一:

      .box {
                width: 300px;
                height: 200px;
                margin: 0 auto;
                position: relative;
                background: #ccc;
            }
            .ant{
                position: absolute;
                top:50%;
                left: 50%;
                background-color: red;
                width:100px;
                height:80px;
                margin-left:-50px;
                margin-top:-40px;
            }
    

    方法二:

    <style type="text/css">
        #box {
            width: 300px;
            height: 200px;
            margin: 0px auto;
            background-color: #ccc;
            position: relative;
        }
    
        #ant {
            position: absolute;
            background-color: red;
            width: 100px;
            height: 80px;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
        }
    </style>
    
    <body>
        <div id="box">
            <div id="ant"></div>
        </div>
    </body>
    

    方法三:

     .box1{
                height: 200px;
                width: 300px;
                margin: 0 auto;
                display: flex;
                border: 1px solid red;
                justify-content:center;
            }
            .ant1{
                height: 100px;
                width: 100px;
                border: 1px solid black;
            }
    

    方法四:

       .box2{
                width: 300px;
                height: 300px;
                margin: 0 auto;
                display: table-cell;
                vertical-align: middle;
            }
            .ant2{
                margin: 0 auto;
                width: 100px;
                height: 100px;
               
            }
    

    background

    background属性由如下几个属性组成:

    (1).background-color

    (2).background-position

    (3).background-size(CSS3)

    (4).background-repeat

    (5).background-origin(CSS3)

    (6).background-clip(CSS3)

    (7).background-attachment:背景图片是否随着页面的滚动而滚动

    (8).background-image
    注意点:背景图片会覆盖在背景图片上面,.url与后面的小括号之间不能存在空格,否则会报错

    text-decoration

    给文本添加中划线、下划线或者上划线等。

    vertical-align

    vertical-align用于对齐[行内级元素]:table-cell/inline-block

    外边距合并

    1.同级的外边距合并:
    外边距产生的条件:

    (1).水平方位不可能产生外边距合并现象,垂直方位有可能出现。

    (2).绝对定位(absolute/fixed)元素或者浮动元素不会出现外边距合并。

    (3).相邻的外边距之间内容为空,这里的内容是指边框和内边距等。
    2.父子外边距合并
    父子外边距合并现象,外边距不会作用与父元素,而是作用于父元素之外的元素。但是这个外边距合并现象还需要附加一个条件,就是不能触发父元素的BFC格式化上下文。

    浮动元素

    浮动的元素的display自动转化为inline-block
    元素脱离文档流,不占据元素的空间,但是依然会占据文档流中文本的空间。

    浮动带来的问题

    1.父元素塌陷;
    2.对于兄弟元素而言的话,要分是不是块级元素,如果是,那么此元素会尽可能的与浮动元素处于同一行,例如浮动元素覆盖此块级元素。如果是非块级元素,那么此元素会尽可能的会围绕这个浮动元素。

    清除浮动

    1.清除浮动元素对兄弟元素的影响
    对非浮动元素加上clear:both
    缺点:不能消除当前元素内部的浮动元素所产生的影响。
    2.解决父元素塌陷
    这种方法并不推荐,因为会增加额外的元素

    <div id="box">
      <div id="inner"></div>  
      <div style="clear:both;"></div> 
    </div>
    

    3.利用伪类(对父元素添加类)

    .clearfix{*zoom:1;}  
    .clearfix:after{ 
      content:"."; 
      display:block; 
      height:0; 
      visibility:hidden; 
      clear:both; 
    }
    

    伪类选择器

    1.nth-child:可以匹配指定类型与位置的元素
    这个例子可以让li标签改变颜色。但是第三个元素不是li,所以无法匹配

    <style>
        li:nth-child(2){
            color: red;
        }
         li:nth-child(3){
            color: red;
        }
    </style>
    <body>
        <ul>
            <li>122</li>
            <li>333</li>
            <p>4444</p>
            <li>5555</li>
        </ul>
    </body>
    

    相关文章

      网友评论

          本文标题:css

          本文链接:https://www.haomeiwen.com/subject/mgvzdqtx.html