• css3基础、(弹性、响应式)布局注意点


    E1>E2选择父元素为E元素的所有E2元素(子类选择器)
    E1+E2选择元素为E1之后的所有E2元素(兄弟选择器)
    E[attr]只使用属性名,但没有确定任何属性值
    E[attr="value"]指定属性名,并指定了该属性的属性值
    E[attr~="value"]指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”不能不写
    E[attr^="value"]指定了属性名,并且有属性值,属性值是以value开头的
    E[attr$="value"]指定了属性名,并且有属性值,而且属性值是以value结束的
    E[attr*="value"]指定了属性名,并且有属性值,而且属值中包含了value(字符串查找的方式)
    E[attr|=“value”]指定了属性名,并且属性值是value或者以“value-”开头的值(比如说zh-cn) 不能是词列表(如:dd b-leo或者dd b)
    1、css3属性选择器
    E:nth-child(n)  表示找到E的父级中的第n个子节点E
    E:nth-child(odd){background:red}/*匹配奇数行*/
    E:nth-child(even){background:red}/*匹配偶数行*/
    标签 *:nth-child(n);/*找标签下第N个元素*/
    E:nth-child(2n){background:red} /*n为0-无穷大
    E:nth-last-child(n) 表示找到E父级中的第n个字节点,从后向前计算
    E:nth-of-type(n)  表示找到E父级中的第n个字节点,且类型为E. E为这类集合,然后在集合中找第n的元素
    E:nth-last-of-type(n)表示找到E父级中的第n个字节点,且类型为E,从后向前计算
    E:empty 表示找到E元素中没有子节点。注意:子节点包含文本节点
    
    E:first-child 表示找到E父级中的第一个子节点 =>nth-child(1)
    E:last-child 表示找到E父级中的最后一个子节点 =>nth-last-child(1)
    E:first-of-type 表示找到E父级中的第一个子节点且节点类型是E的 =>nth-of-type(1)
    E:last-of-type 表示找到E父级中的最后一个子节点且节点类型是E的 =>nth-last-of-type(1)
    E:only-child表示找到E元素中只有一个子节点。注意:子节点不包含文本节点
    E:only-of-type 表示找到E的父级中只有一个子节点,且这个唯一的子节点的类型必须是E。注意:子节点不包含文本节点
    2、css3结构伪类
    E:target 表示当前的URL片段的元素类型,这个元素必须是E  (如:div:target{ display:block;})
    E:target 表示当前的URL的Hash,这个元素必须是E  (如:div:target{ display:block;})
    E:disabled 表示不可点击的表单控件
    E:enabled 表示可点击、编辑的表单控件
    E:checked 表示已选中的checkbox或radio
    E:first-line 表示E元素中的第一行
    E:first-letter 表示E元素中的第一个字符
    E::selection表示E元素在用户选中文字时触发
    E::before 生成内容在E元素前
    E::after 生成内容在E元素后
    E:not(s) 表示E元素不被匹配s元素; 通常是.类名如:(p:not(.cc))
    E~F表示E元素毗邻的F元素
    Content 属性,其常结合after、before使用。
    3、css3伪类
    direction:rtl;unicode-bidi:bidi-override;  文字排版(rtl右至左)
    -webkit-text-stroke:3px red;  文字描边
    white-space:nowrap; 文字超出不换行
    4、css3注意地方
    1、弹性盒模型:
    注意在使用弹性盒模型的时候 父元素必须要加display:box 或 display:inline-box
        Box-orient 定义盒模型的布局方向
            Horizontal 水平显示
            vertical 垂直方向
        box-direction 元素排列顺序
            Normal 正序
            Reverse 反序
        box-ordinal-group 设置元素的具体位置(如1、2...)
        Box-flex 定义盒子的弹性空间大小
            子元素的尺寸=盒子的尺寸*子元素的box-flex属性值 / 所有子元素的box-flex属性值的和 
        box-pack 对盒子富余的空间进行管理
            Start 所有子元素在盒子左侧显示,富余空间在右侧
            End 所有子元素在盒子右侧显示,富余空间在左侧
            Center 所有子元素居中
            Justify 富余空间在子元素之间平均分布
        box-align 在垂直方向上对元素的位置进行管理
            Star 所有子元素在据顶
            End 所有子元素在据底
            Center 所有子元素居中
    2、盒模型阴影:
        box-shadow:[inset] x y blur [spread] color
        参数
            inset:内投影
            不给:外投影
            x、y:阴影偏移
            blur:模糊半径
            spread:扩展阴影半径(先扩展原有形状,再开始阴影)
            color
    3、其他盒模型新增属性:
        box-reflect 倒影
            方向 above(顶)|below(底)|left|right;
            距离(可选)
            渐变(可选)-webkit-linear-gradient(right,rgba(0,0,0,1) 0,rgba(0,0,0,0) 50%)
        resize 自由缩放
            Both 水平垂直都可以缩放
            Horizontal 只有水平方向可以缩放
            Vertical 只有垂直方向可以缩放
        注意:一定要配合overflow:auto 一块使用才可以缩放
        box-sizing 盒模型解析模式
            Content-box  标准盒模型 
                盒模型的宽高=border+padding+content(width|height)
            Border-box 怪异盒模型 width/height=content
                盒模型的宽高=width/height
                Content的宽高=width/height-border-padding
    4、Css3分栏布局:
        column-width 栏目宽度
        column-count 栏目列数
        column-gap   栏目距离
        column-rule  栏目间隔线 
        宽度、内容都是平均分配
    5、css3弹性布局、分栏布局注意点、特性
    响应式布局:
    1、媒体类型
        all 所有媒体
        braille 盲文触觉设备
        embossed 盲文打印机
        print 手持设备 
        projection 打印预览
        screen 彩屏设备(常用)
        speech '听觉'类似的媒体类型
        tty 不适用像素的设备
        tv  电视
    2、关键字
        And     条件同时成立
        not     not关键字是用来排除某种制定的媒体类型
        only    only用来指定某种特定的媒体类型
    3、媒体特性
    (max-600px) 
    (max-device- 480px)  设备输出宽度
    (orientation:portrait)  竖屏
    (orientation:landscape)    横屏
     (-webkit-min-device-pixel-ratio: 2) 像素比
    devicePixelRatio 设备像素比 window.devicePixelRatio = 物理像素 / dips
    4、样式引入方式(三种)
    (1)、<link rel="stylesheet" type="text/css" href="styleA.css"  media="screen and (min- 800px)">
    (2)、@import url("css/reset.css") screen;
    (3)、@media screen [and 条件]{
           选择器{
            属性:属性值;
             }
           }
    5、样式引入举例
    <link rel=”stylesheet” media=”all and (orientation:portrait)” href=”portrait.css”>
    <link rel=”stylesheet” media=”all and (orientation:landscape)”href=”landscape.css”>
    @media screen and (min-400px) and (max-500px) {.box {margin: 0 auto;}}
    -----------------------------------------------------------------------------------
    <link rel="stylesheet" type="text/css" href="styleA.css"  media="screen and (min- 800px)">
    <link rel="stylesheet" type="text/css" href="styleB.css" media="screen and (min- 600px) and (max- 800px)">
    <link rel="stylesheet" type="text/css" href="styleC.css"    media="screen and (max- 600px)">
    -----------------------------------------------------------------------------------
    6、移动端meta
    <meta name="viewport" content="" />
    width [pixel_value | device-height]
    height [pixel_value | device-height]
    user-scalable 是否允许缩放 (no||yes)
    initial-scale 初始比例
    minimum-scale 允许缩放的最小比例
    maximum-scale 允许缩放的最大比例 
    target-densitydpi [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi] 
    5、响应式布局及注意点
    indexa.css代码如下:
    @charset "utf-8";
    /* CSS Document */
    .wrap{border:1px solid #000; font:14px/28px "宋体";color:#000; text-indent:2em; -webkit-column-count:4; -webkit-column-gap:30px; -webkit-column-rule:1px solid #000;}
    
    indexb.css代码如下:
    @charset "utf-8";
    /* CSS Document */
    .wrap{border:1px solid #000; font:16px/28px "宋体";color:#000; text-indent:2em; -webkit-column-count:2; -webkit-column-gap:20px; -webkit-column-rule:1px solid #000;}
    
    indexc.css代码如下:
    @charset "utf-8";
    /* CSS Document */
    .wrap{border:1px solid #000; font:16px/28px "宋体";color:#000; text-indent:2em;}
    
    具体实例1:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <!--重要部分-->
    <link rel="stylesheet" type="text/css" href="indexa.css" media="screen and (min-800px)">
    <link rel="stylesheet" type="text/css" href="indexb.css" media="screen and (min-400px) and (max- 800px)">
    <link rel="stylesheet" type="text/css" href="indexc.css" media="screen and (max- 400px)">
    </head>
    <body>
    <div class="wrap">
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
    </div>
    </body>
    </html>
    
    
    具体实例2:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <link rel="stylesheet" media="all and (orientation:portrait)" href="indexb.css">
    <link rel="stylesheet" media="all and (orientation:landscape)" href="indexa.css">
    </head>
    <body>
    <div class="wrap">
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
    </div>
    </body>
    </html>
    
    具体实例3:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <style>
    @media screen and (min-800px) {        
        .wrap{border:1px solid #000; font:14px/28px "宋体";color:#000; text-indent:2em; -webkit-column-count:4; -webkit-column-gap:30px; -webkit-column-rule:1px solid #000;}
    
    }
    
    @import url("indexc.css") screen and (min-400px) and (max-800px);
    
    @media screen and (max-400px) {        
        .wrap{border:1px solid #000; font:16px/28px "宋体";color:#000; text-indent:2em; -webkit-column-count:2; -webkit-column-gap:20px; -webkit-column-rule:1px solid #000;}
    
    }
    
    </style>
    </head>
    <body>
    <div class="wrap">
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
        <p>按照淘宝首页的无缝图片切换做:第一张和最后一张复制,打开浏览器时ul的left是-520,然后走完最后一张,ul的left是-1040。这样实现无缝切换,我就是卡在这里了,它这么样实现到最后一个还是顺着到-1040,保证不是倒 ...</p>
    </div>
    </body>
    </html>
    6、响应式布局实例
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <style>
    @font-face {
        font-family: 'ff';
        src: url('1-webfont.eot');
        src: url('1-webfont.eot?#iefix') format('embedded-opentype'),
             url('1-webfont.woff') format('woff'),
             url('1-webfont.ttf') format('truetype'),
             url('1-webfont.svg#untitledregular') format('svg');
        font-weight: normal;
        font-style: normal;
    }
    #wrap{600px;margin:0 auto; position:relative;}
    #wrap label{float:left;margin:0 5px;}
    #wrap label span:nth-of-type(1){float:left;height:30px;background:#f60; font:14px/30px "宋体"; color:#fff;padding:0 10px; transition:.3s;}
    #wrap label span:nth-of-type(1):hover{ background:green;}
    #wrap label i{ font:30px "ff"; padding:0 5px; vertical-align:middle;}
    #wrap label span:nth-of-type(2){ position:absolute;left:0;top:30px;border:1px solid #000;height:300px; opacity:0;z-index:1;padding:10px; font:12px/24px "宋体";color:rgba(0,0,0,1);transition:2s;text-shadow:0 0 30px rgba(0,0,0,1); color:rgba(0,0,0,0);}
    #wrap input{ position:absolute;top:-50px;}
    #wrap input:checked~span:nth-of-type(1){background:green;}
    #wrap input:checked~span:nth-of-type(2){ z-index:2;opacity:1; text-shadow:0 0 0 rgba(0,0,0,0); color:rgba(0,0,0,1);}
    </style>
    </head>
    <body>
    <div id="wrap">
        <label>
           <input id="btn1" type="radio" name="btns" checked />  
           <span><i>0</i>dddd简介</span>
           <span>ddddddddddd3423432432432542532ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd<br />
    目前主要针对的更多惊喜。</span>   
        </label>
        <label>
               <input id="btn1" type="radio" name="btns" /> 
            <span><i>1</i>dddffd</span>
            <span>sfsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsdfsfsf</span>   
        </label>
        <label>
               <input id="btn1" type="radio" name="btns" /> 
            <span><i>2</i>fdgfd</span>
            <span>sfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsf</span>    
        </label>
        <label>
               <input id="btn1" type="radio" name="btns" /> 
            <span><i>3</i>sfdsf</span>
            <span>sfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsfsfdsf fffdsf</span>    
        </label>
    </div>
    </body>
    </html>
    7、css3伪类(结合:checked伪类实现鼠标单击切换效果)实例
    .overimg{
        position: relative;
        display: block;
        /* overflow: hidden; */
        box-shadow: 0 0 10px #000;
        1083px; height:335px;
        overflow:hidden;
    }
    .light{
        cursor:pointer;
        position: absolute;
        left: -1083px;
        top: 0;
         1083px;
        height: 335px;
        background-image: linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.3),rgba(255,255,255,0));
        background-image: -ms-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.3),rgba(255,255,255,0));
        background-image: -moz-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.3),rgba(255,255,255,0));
        background-image: -webkit-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.3),rgba(255,255,255,0));
        transform: skewx(-25deg);
        -o-transform: skewx(-25deg);
        -moz-transform: skewx(-25deg);
        -webkit-transform: skewx(-25deg);
        /**************此位置可变****************/
        -moz-transition:0.5s;
        -o-transition:0.5s;
        -webkit-transition:0.5s;
        transition:0.5s;
     
    }
    .overimg:hover .light{
        left:1083px;
    }
    css3扫光效果
    #lightbox { background: white;border: 20px solid rgba(0,0,0,0.5); 200px; height:100px; margin:300px auto; position:absolute; top:50%; left:30%; border-radius:20px; box-shadow:0 0 3px 3px rgba(0,0,0,0.5);}
    #lightbox { -moz-background-clip: border; /* Firefox 3.6 */ 
                -webkit-background-clip: border; /* Safari 4? Chrome 6? */    
                background-clip: border-box; /* Firefox 4, Safari 5, Opera 10, IE 9 */    
                -moz-background-clip: padding; /* Firefox 3.6 */    
                -webkit-background-clip: padding; /* Safari 4? Chrome 6? */    
                background-clip: padding-box; /* Firefox 4, Safari 5, Opera 10, IE 9 */    
                -moz-background-clip: content-box; /* Firefox 3.6 */    
                -webkit-background-clip: content-box; /* Safari 4? Chrome 6? */    
                background-clip: content-box; /* Firefox 4, Safari 5, Opera 10, IE 9 */ 
    }  
    css3透明边框
  • 相关阅读:
    Redis string
    java 是 传值还是传址 Pass-by-value or Pass-by-reference
    IDEA 适用技巧
    测试 MD
    pyqt5 学习总结
    win10 安装anaconda 无法使用pip 报错缺少SSL模块
    Hadoop datanode无法启动
    Ansible 安装jdk
    java 安装后 不能 java javac 说找不到命令 -bash: javac: command not found
    如何去掉MapReduce输出的默认分隔符
  • 原文地址:https://www.cnblogs.com/codc-5117/p/5596947.html
Copyright © 2020-2023  润新知