zoukankan      html  css  js  c++  java
  • CSS零碎知识点

    无内容的边框:可以做三角箭头

    border-right:7px solid #FFF;
    border-top:7px solid transparent;
    border-bottom:7px solid transparent;
    border-left: 7px solid blue;

    顶部banner图

    设置为background-position: 50% 50%; 可以将其重点放在页面上,并且改变浏览器窗口大小也不会压缩变形。记住同时min-width;一定要设置为定宽布局部分的固定宽度。

    关于position的总结:

    1.在html页面中,默认使用流式布局。

    2.流式布局:在一个元素中,他的子元素都拥有自己的默认位置,子元素之间采用从左到右,从上到下的方式排列布局。

    3.文档流:在一个元素中,流式布局的元素队列,在文档流中的子元素都会有自己的位置,如果某个子元素脱离了文档流,那么他就不再参与流式布局,不再拥有自己的位置。

    4.块元素不设置宽高时,宽度与父元素等宽,高度取决于自身内容。但是如果脱离了文档流,就不能参照父元素定宽,所以脱离了文档流的块元素如果没有内容,则必须设置宽高。如果有内容,宽高都取决于内容。

    position作用:表示元素的定位方式。

    static静态定位。参与流式布局,不能设置位置,是元素默认的定位方式。

    absolute绝对定位。脱离文档流。不参与流式布局。所以在它父元素的文档流中就没有他的位置。绝对定位的元素可以设置位置,相对于离自己最近的position为非static的外层元素定位。

    relative相对定位。参与流式布局,可以设置位置,相对于本身在流文档中原有的位置进行定位。

    fixed固定定位。脱离文档流,可以设置位置,相对于浏览器视窗进行定位。不随页面滚动。

    简单常用的表格属性:

    设置边框折叠,解决看起来像双边框问题:border-collapse: collapse;

    colspan设置td占多少列,rowspan设置td占多少行。

    常用的伪类:

    :hover , 所有元素都能用

    :active,当元素获得焦点时触发。只有可交互的元素才能获得焦点。同一页面中同一时间只有一个元素获得焦点。

    :visited , 只能用于a标签,表示已访问过。

    :before , 元素前缀,前缀中设置的内容,会显示在元素的左边。前缀中的内容可以单独设置样式

    .rmb:before{
          content: "¥";
          color: blue;
    }

    相似的:after

    .rmb:after{
         content: "元";
         color: blue;
    }

    :first-letter , 选中元素中第一个元素。

    #p1:first-letter{
            font-size: 30px;
            color: red;
    }

    :first-line , 选中元素中第一行。

    #p1:first-line{
          font-family: "黑体";
    }

    实现上下左右居中

    absolute,四个方向0;margin:auto;

    {
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        margin: auto;
    }

     常用的background属性:

    1.background-position,设置背景图片的位置。横向和纵向。可以设置具体指,也可以设置百分比。

    background-position: 100px -20px;
    /*上下左右居中*/
    background-position: 50% 50%;
    /*右下*/
    background-position: 100% 100%;

    2.background-size,设置横向和纵向的尺寸。如果不设置这个属性,默认为图片原始大小,如果只设置宽度,高度会等比例变化。可以设固定值,也可以设置百分比。

    与元素等宽高:background-size: 100% 100%;

    有两个特殊值:

      contain,纵向铺满,横向等比例缩放。

      cover,横向铺满,纵向等比例缩放。

    background-size: contain;
    background-size: cover;

    3.background-attachment: fixed;背景图片固定

    4.background-clip: content-box; 背景裁剪,背景只显示在内容部分,pading部分无背景。

    5.背景精灵:将多个小图片拼接成一个大图片之后,会减少本页面加载时的请求次数,提高页面的访问速度。

    background-image, background-size, background-position , 配合使用。

    如下:div宽度为50*50;小图标共有7*7;于是 background-size: 700% 700%; 可以使背景图为div的7倍宽高,于是每张图的宽高就等于div的宽高了。然后通过 background-position: -100% -200% ; 就可以定位在在图片里第3排第2列的铃铛小图标了。

    div{
           width: 50px;
           height: 50px;
           border: 1px solid black;
           background-image: url("icons.jpg");
           background-position: -100% -200% ;
           background-size: 700% 700%;
    }

    常用的border相关属性:

    1.圆角:border-radius:25px;

    2.阴影:box-shadow: h-shadow v-shadow blur spread color inset;

    h-shadow 必需。阴影的水平方向相对于左上角的偏移量。允许负值
    v-shadow 必需。阴影的垂直方向相对于左上角的偏移量。允许负值
    blur 可选。模糊部分的尺寸。
    spread 可选。阴影的尺寸,设置正值,阴影会大一圈。同理,负值会使阴影变小。
    color 可选。阴影的颜色。
    inset 可选。将外部阴影 (outset) 改为内部阴影。

    即:h-shadow与y-shadow决定了阴影的位置,blur决定了阴影的模糊程度,spread决定了阴影的尺寸。

    应用:box-shadow: 10px 10px 5px #888888;

    3.使用图片来绘制边框:

    div{
        border-image:url(border.png) 30 30 round;
        -moz-border-image:url(border.png) 30 30 round; /* 老的 Firefox */
        -webkit-border-image:url(border.png) 30 30 round; /* Safari 和 Chrome */
        -o-border-image:url(border.png) 30 30 round; /* Opera */
    }

     盒子模型

    1.任何元素,从里到外分为 内容,内间距,边框,外间距。

    2.设置一个元素的宽高,默认设置的是内容的宽高。可以通过box-sizing设置。

    3.box-sizing,元素宽高的计算方式,默认为content-box,以内容盒计算。border-box表示以边框盒计算,包含内容,内边距和边框。

    /* 默认 内容*/
    box-sizing: content-box;
     /* 内容 内边距 边框 */
    box-sizing: border-box;

    content-box:

    border-box:

     4.外边距重叠

    两个块元素,上下相邻时,外边距会产生重叠。如果两者外边距不同,则使用较大的那个值。
    两个嵌套关系的块元素上下外间距也会重叠。如果两者外间距不同,则使用较大的那个值。
    必要条件:只有块元素上下外间距才会产生重叠。

    行元素或行内块元素之间会有小间隙?

    原因:HTML在书写时为了保持美观,每个元素单独写一行,所以元素之间会有空格和回车,这些空格和回车在页面解析时会被解析成一个空格,间隙就是这个空格造成的。

    解决办法:清除元素之间的回车和空格,例如将下一行的开始标签写在上一行;设置负margin抵消间距(用em);

    关于float:

    让元素使用浮动布局,不再使用流式布局,在浮动布局中,块元素不再单独占一行,而且宽度不再与父元素相等,也进行左右排列。

    任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。

    注意:浮动布局会影响本元素的后续元素,所以使用浮动布局之后一定要在最后一个浮动元素之后清除浮动,否则会造成父元素撑不开,后续元素排列错误等。

    清除浮动的方法:

      在最后一个浮动元素之后添加一个空的div,给这个div设置样式clear: both;

      在不添加新元素的情况下清除浮动:为浮动元素的父元素添加一个class(一般使用clear-fix作为class名),为这个class添加后缀,后缀设置为块级元素,并clear: both;

    .clear-fix:after{
           content: '';
           display: block;
           clear: both;
    }

    浮动布局用处:做环绕效果;

    常用长度单位:

    px表示像素,像素是相对单位,表示屏幕上最小的显示单元。
    mm表示毫米,绝对单位。
    pt表示磅,绝对单位,常用于打印字体。
    vw是相对单位,1vw = 浏览器视窗宽度的1%。适配。写手机网页很有用。
    vh与vw相似,相对于浏览器视窗高度。
    em是相对单位,1em=相对自身或父元素的字体大小。
    rem表示根元素(html)的字体大小。

    溢出的文本过长将超出部分设置为 ...

     overflow:hidden;
     white-space:nowrap;
     text-overflow:ellipsis;

    关于是否脱离文档流的尝试:

    position:relative

    position:absolute

    float:left;

    float和absolute都会将元素转成块级元素。relative不会。

    如下:

     50px;
    height: 50px;
    background-color: green;
    margin: 10px;

    这时元素的宽高不会是50px,因为是行内元素

    添加float:left;以后,元素具有了宽高:

    改为添加position:absolute; 元素同样具有了宽高,都叠在了一起:

    改为position:relative; 再看看还是与原来一样,仍旧是不具有设置的宽高的。

    所以float和absolute都会将元素转成块级元素。而relative不会。

    关于css选择器

    类别:标签名,id,class,属性,自定义,伪类选择器

      div p 选择子元素(包括所有子辈元素,包括孙子...

      div>p 选择子元素(孙子元素不选择)

      #first.line 同时满足id为first和class为line

      [abc] 属性选择器

      [pro=val] 属性选择器

      div:empty 内容为空的div

      td:nth-of-type(1) 每个元素中的第一个td标签。即选中表格中第一列。

      td:nth-last-of-type(1) 每个元素中倒数第一个td标签,即选中最后一列。

      td:nth-of-type(2n) 所有第偶数个td。

      td:nth-of-type(2n+1) 奇数 。常用于表格的隔行换色。

      td:nth-of-type(n+3) 从第三列开始,后面所有td

      td:nth-of-type(-n+3) 前三列

    选择器优先级:!important>行内样式>id选择器>class选择器>标签名选择器

    多个选择器连写时优先级是这些选择器优先级(权值)之和。权值:标签名1,class10,id100,行内1000,!import10000。例如h1#t1.title比#t1高。

    让元素隐藏

    display: none;让一个元素在页面当中不显示,而且页面中也没有它的位置

     visibility: hidden;让一个元素在页面当中不显示,而且页面中有它的位置

    浏览器前缀

    -ms-   /* IE */
    -webkit-  /* Safari and Chrome */
    -o-   /* Opera */
    -moz-   /* Firefox */

    body元素自带一个8像素的外间距。

    rgb分别表示三种颜色的强度,所以rgb(0,0,0)黑色,rgb(0,0,0)白色

  • 相关阅读:
    [HTML5] document.hidden
    在vue页面中设置resize事件
    document之ES6解构
    vue中mixins的使用方法和注意点---mixins第二篇(异步请求的情况)
    vue中mixins的使用方法和注意点---mixins第一篇
    vue中路由重定向redirect
    如何理解dispatch( 'tagsView/delAllViews',null,{root:true} )里面的root:true
    vue计算属性computed中的get和set的使用
    splice(0)的奇妙用法
    4月5日学习日志
  • 原文地址:https://www.cnblogs.com/PeriHe/p/7877929.html
Copyright © 2011-2022 走看看