zoukankan      html  css  js  c++  java
  • pc端的企业网站(IT修真院test8)详解1-3

    一,base.css基础样式表的意义

    我昨天,整理了一下代码规范。

    发现现在这个程度的页面还原。有必要创建一个规范的base.css库和framework.css库

    而且也要为日后的工作整理一些常用的基础css,你们想象一下日后在公司里上班,如果每次都要逐一新增基础样式,那么花费的时间就会滴水长流。其二,自己创建一个base样式,可以缩减样式的字符。在页面载入html的时候可以缩减时间。如:

    .pct80{80%;}
    .l{float:left;}
    这样的基础样式,在每个页面里都是要使用的。而且我的命名规范都是面向性命名。即所见即所得。
    总结:1,一次link引入,减小代码量
      2,规范每次的代码输入
      3,减少html载入时间
      4,还可以分享
    在查看相关的文章后,自己初步建立了自己的base库
    /* ---------------------公用 CSS----------------------- */
    /* float */
    .l{float:left;}
    .r{float:right;}
    /* clear */
    .cl{clear:both;}
    /* display */
    .dn{display:none;}
    .di{display:inline;}
    .db{display:block;}
    .dib{display:inline-block;}
    /* position */
    .rel{position:relative;}
    .abs{position:absolute;}
    /* overflow */
    .ovh{overflow:hidden;}
    .ova{overflow:auto;}
    /* text-align */
    .tc{text-align:center;}
    .tr{text-align:right;}
    .tl{text-align:left;}
    .tj{text-align:justify;}
    
    
    
    
    
    /* 块状元素水平居中 */
    .auto{margin-left:auto; margin-right:auto;}
    /* 大小不定元素垂直居中 */
    .dib-vam{display:inline-block; width:0; height:100%; vertical-align:middle;}
    /*图层定位水平垂直居中*/
    .pat{ position: absolute;top:50%;left:50%;transform: translate(-50%,-50%);}
    /*flex水平垂直居中*/
    .df-cc{display:flex;justify-content: center;align-items: center;}
    
    
    
    /*弹性布局,不换行*/
    .df-fwno{display:flex;flex-wrap:nowrap;}
    /*每个项目两侧间隔相等。那么两个项目间的距离是间隔x2*/
    .df-jcsa{display:flex;justify-content: space-around;}
    /*两端对齐,第一个没左边距,最后一个没有右边距*/
    .df-jcsb{display:flex;justify-content: space-between;}
    .fw{flex-wrap: wrap}
    
    
    
    
    
    
    
    
    /* font-size */
    .f16{font-size:1.6rem;}
    .f50{font-size:5rem;}
    /* percent width value */
    .pct100{width:100%;}
    .pct80{width:80%;}
    .pct25{width:25%;}
    .pct20{width:20%;}
    .pct30{width:30%;}
    .pct33{width:33.3%;}
    /* fixed width value */
    .w280{width:280px;}
    /*font-color*/
    .co20B{color:#20B176;}
    .co5fc{color:#5fc0cd;}
    .cofff{color:#fff;}
    .co000{color:#000;}
    .bgfff{background:#fff;}
    /* white-space */
    .nowrap{white-space:nowrap;}
    /* 单行文字溢出虚点显 示*/
    .ell{text-overflow:ellipsis; white-space:nowrap; overflow:hidden;}
    
    /*最大宽最大高*/
    .ma-wh25{max-width: 2.5rem;max-height:2.5rem;}
    .mi-h250{min-height: 25rem;}
    .mb20{margin-bottom:2rem;}
    /*投影*/
    .drop-sb{filter:drop-shadow(5px 5px 10px black)}
    
    .cptdno{cursor: pointer;text-decoration:none;}

     framework的代码

    /* ---------------------框架设置----------------------- */
    /*将html 和 body 元素的高度设置为100%,使其充满整个屏幕。*/
    /*这里还要说明一下:html下的body一般会有或多或少的margin,body的高度不是100%的。*/
    html{height:100%;width:100%;}
    
    /*将html 和 body 元素的高度设置为100%,使其充满整个屏幕。这里body:height:100%是继承html的高度*/
    /*将 body 的 display 属性设置为 flex, 然后将方向属性设置为列,*/
    body{display:flex;flex-direction:column;height:100%;width:100%;}
    /*我们希望 header 和footer 只占用他们应该占用的空间,将剩余的空间全部交给主体内容区域*/
    
    /*.g-header{flex:0 0 auto;}*/
    header{flex:0 0 auto;}
    /*将 flex-grow 设置为1,该元素会占用全部可使用空间*/
    /*而其他元素该属性值为0,因此不会得到多余的空间*/
    /* 1 flex-grow, 0 flex-shrink, auto flex-basis */
    .g-content{flex: 1 0 auto;width:100%;background:whitesmoke;}
    
    /*.g-footer{flex: 0 0 auto;}*/
    footer{flex: 0 0 auto;}
    
    /*此方法通过position固定在浏览器下方,但是以一种浮动在上层的效果出现的。*/
    /*所以上一个紧挨的并列盒子,即g-content盒子的内容就会有一部分显示不全。被遮挡了。*/
    /*而这种特性也被用于实现footer底层样式透明,footer里的按钮不透明。*/
    /*而实现内容不遮挡,只要在g-content的底部新增一个含高度的空div就完成。*/
    .g-footer-f{position: fixed;bottom:0; width:100%;min-height: 5rem;}
    
    /*只要再给一个层,然后给个跟父盒子一样高的高度就可以实现底层透明,上层不透明*/
    /*filter:alpha(Opacity=50);-moz-Opacity:0.5;opacity:0.5;实现透明效果*/
    .footer-bg{height:5rem;filter:alpha(Opacity=50);-moz-Opacity:0.5;opacity:0.5;}
    
    
    /* ---------------------具体的头部设置----------------------- */
    
    .h-row-1{
        min-height: 2rem;
        line-height: 2rem;
    }
    .h-row-1 a{
        color:#20B176;
    }
    .h-row-1 img{
        max-width: 1rem;
        margin:0 0.2rem;
    }
    
    .h-row-2{
        background:#20B176;
        min-height:4rem;
        line-height:4rem;
    }
    .h-row-2 a{
        font-size:1.5rem;
        color:#fff;
        margin-left: 2.5rem;
    }
    
    /* ---------------------具体的脚步设置----------------------- */
    
    footer{
        background:#20B176;
    }
    .f-row-2{
        min-height: 2rem;
        line-height: 2rem;
        border-top:0.1rem solid #fff;
    }
    .f-row-2 span{
        padding:0 0.2rem;
        font-size:1rem;
        color:#fff;
    }
    .f-row-2 span:nth-child(5){
        padding-right:0.5rem;
        border-right:0.1rem solid #fff;
    }
    
    .f-row-1{
        padding:1rem 0;
        min-height: 11rem;
    }
    
    .f-row-1 h5{
        font-size: 1.5rem;
        color:#fff;
    }
    .f-row-1 a{
        padding:0 1rem;
        color:#fff;
    }
    
    .f-row-1 li{
        display:inline-block;
    }
    
    
    
    
    
    
    
    
    .f-cess-1,.f-cess-2,.f-cess-3{
        position:relative;
        margin:0;
        /*border:0.1rem solid #ff0000;*/
    }
    .f-cess-1{
        width:30%;
    }
    .f-cess-2{
        width:35%;
        margin:0 1rem;
    }
    .f-cess-3{
        width:30%;
        text-align:right;
        overflow: hidden;
    
    }
    .f-cess-1 ul{
        position: absolute;
        bottom:-1rem;
        left:0;
        /*border:0.1rem solid #ff0000;*/
    }
    .f-cess-2 ul{
        position: absolute;
        bottom:-1rem;
        left:0;
    }
    .f-cess-1 li{
        margin:1rem .5rem 0 -1rem;
        /*用于撑开链接的行高和去掉默认的左边10px间隙*/
    }
    .f-cess-2 li{
        margin:1rem 1rem 0 -1rem;
    }
    .f-cess-1 li:first-child{
        border-right:0.1rem solid #fff;
    }
    .f-cess-1 li:nth-child(2){
        border-right:0.1rem solid #fff;
    }
    这只是自己的一点小穿插。回到test8
    test8-1中,

    1.盒子c-cell-1里要设置font-size:0来去掉子c-cell-2的inline-block里之间的间隙
    2.c-cell-2的width设置为20%,均分5格。
    3.box-shadow的使用
    <div class="c-cell-1">
                    <div class="c-cell-2">
                        <a href=""><img src="img/test8-1/alibaba.jpg"> </a>
                    </div>
                    <div class="c-cell-2">
                        <a href=""><img src="img/test8-1/jinshanyun.jpg"> </a>
                    </div>
                    <div class="c-cell-2">
                        <a href=""><img src="img/test8-1/huanxin.jpg"> </a>
                    </div>
                    <div class="c-cell-2">
                        <a href=""><img src="img/test8-1/yuntongxun.png"> </a>
                    </div>
                    <div class="c-cell-2">
                        <a href=""><img src="img/test8-1/qiniu.jpg"> </a>
                    </div>
    
                </div>
    .c-cell-1{
        width:100%;
        background:#fff;
        overflow: hidden;
        /*border:0.1rem solid #ff0000;*/
        font-size: 0;
    }
    /*font-size: 0;用于去掉div之间的间隙*/
    .c-cell-2{
        display: inline-block;
        width: 20%;
        height: 12rem;
        padding:0 1rem;
    
    }
    .c-cell-2>a{
        width:100%;
        display: inline-block;
        line-height: 12rem;
        margin:0;
        padding:0;
        list-style-type: none;
        /*border:0.1rem solid #ff0000;*/
    }
    .c-cell-2>a>img{
        width:100%;
    }
    .c-cell-2:hover{
        z-index: 2;
        box-shadow: 0 0 20px lightgrey;
    }

    test8-1的实现已经没什么说的了。现在去到test8-2里

    可以发现content里是左定宽,右边自适应的。

    在平常的页面浏览里,经常发现编辑页面和系统页面都是运用到这种布局。

    那么这么实现左定局,右自适应呢?

    二。一边定局,一边自适应

     方法1:左边float浮动

    关键代码是

    .left{float:left;准确数}
    .right{不用设置}
    当然还要设置clear:both;去掉浮动影响。
    <div class="c-row-3">
            <div class="pct80 auto">
                <div class="left-cell">
            </div>
            <div class="right-cell">
            </div>
            <div class="c-row-4 cl">
    
    
    .left-cell{
        float:left;
        width:20rem;
    
       
    }
    .right-cell{
        /*100%;*/
        margin-left:30rem;
        margin-right:0;
    
    }

     方法2:display:flex

    父容器设置display:flex;right部分设置flex:1;剩下的空间自动伸展

    关键代码是

    .g-content{display:flex;}
    .left{准确数}
    .right{flex:1;}

    方法3:左右都设置浮动+calc函数

    此方法我一直留在自己的word文档中,还没使用过。日后在研究。

    关键代码是

    .left{float:left;}
    .right{float:left;
       calc(100vw - 200px) ;
    }

    1. 浮动。(注意:为了不影响其他元素,别忘了在父级上清除浮动)

    2. calc() = calc(四则运算) 用于在 css 中动态计算长度值,需要注意的是,运算符前后都需要保留一个空格,例如: calc(100% - 10px);

    3. vw: viewport width。1vw = viewport 宽度的 1%, 100vw = viewport width,

    同样的还有 vh: viewport height。1vw = viewport 高度的 1%, 100vh = viewport height。

    浏览器支持情况: 主流浏览器、IE10+

    vw 和 vh 会随着viewport 的变化而变化,因此十分适合于自适应场景来使用。

     方法4:负margin

    加多一个父盒子装right盒子,同时left最后设置

    原理是left盒子附上去,遮挡right父盒子的margin-left

    关键代码是

    .g-content{}
    .c-row-1{float:left;100%;}
    .right{margin-left:200px;}
    .left{float:left;margin-left:-100%;}


    <div class="c-row-1">
    <div class="right"></div>
    </div>
    <div class="left"></div>

    那么布局已经定了,接下来研究左cell的文字特效和对齐方式
    对齐方式,我试了很多方法,都没有实现自适应中间+字体left效果。最后我直接定死宽度,使用
    margin移动到我希望的地方。
    超链接前的圆点。直接使用空白框+radius就可以实现了
    hover伪元素实现鼠标放到链接上的效果
    <div class="left-cell">
                        <h4 class="pct50 auto dib"><strong>合作企业</strong></h4>
                        <ul>
                            <li><div class="circle"></div><a href="">阿里巴巴</a></li>
                            <li><div class="circle"></div><a href="">腾讯视频</a></li>
                            <li><div class="circle"></div><a href="">土豆网</a></li>
                            <li><div class="circle"></div><a href="">北京葡萄藤</a></li>
                            <li><div class="circle"></div><a href="">阿里巴巴</a></li>
                            <li><div class="circle"></div><a href="">阿里巴巴</a></li>
                            <li><div class="circle"></div><a href="">腾讯视频</a></li>
                            <li><div class="circle"></div><a href="">土豆网</a></li>
                            <li><div class="circle"></div><a href="">北京葡萄藤</a></li>
                            <li><div class="circle"></div><a href="">阿里巴巴</a></li>
                            <li><div class="circle"></div><a href="">北京葡萄藤</a></li>
                            <li><div class="circle"></div><a href="">阿里巴巴</a></li>
                        </ul>
                </div>
    /*-----左cell-----*/
    
    .left-cell{
        float:left;
        width:20rem;
        background:#fff;
        text-align: center;
        margin-bottom:30px;
        font-size:1.5rem;
        border: 1px solid lightgrey;
        border-radius: 1%;
        box-shadow: 0 1px 2px lightgrey;
    }
    
    .left-cell h4{
        margin:0;
        width:100%;
        height:4rem;
        line-height:4rem;
        border-bottom: 1px solid lightgrey;
    }
    .left-cell ul{
        width:100%;
        margin-bottom:0;
        padding:1.8rem 0;
    }
    .left-cell li{
        width:50%;
        margin-left:7rem;
        margin-bottom:1.5rem;
        text-align: left;
    }
    .left-cell li a{text-decoration:none;color:#20B176;}
    
    .circle{
        display: inline-block;
        width: 10px;
        height: 10px;
        background-color: white;
        border: 1px solid orangered;
        border-radius: 100%;
        margin-right: 5px;
    }
    .left-cell li:hover div.circle{
        background-color: #ffA500;
    }
    .left-cell li:hover a{
        color:#ffA500;
    }

    。-_-!差不多下午5点了。要坐车到前山。约了妹子吃饭。总结么,没时间总结了。下次吧!

  • 相关阅读:
    hdu 3666 差分约束系统
    hdu 1198农田灌溉
    常微分方程(阿諾爾德) Page 45 相空間,相流,運動,相曲線 註記
    高等微積分(高木貞治) 1.4節 例2
    常微分方程(阿諾爾德) Page 45 相空間,相流,運動,相曲線 註記
    解析函數論 Page 29 命題(2) 函數模的有界性
    高等微積分(高木貞治) 1.4節 例2
    解析函數論 Page 29 命題(1) 有界閉集上的一致連續性
    解析函數論 Page 29 命題(3) 模的下界的可達性
    解析函數論 Page 29 命題(2) 函數模的有界性
  • 原文地址:https://www.cnblogs.com/hewasdrunk/p/7210283.html
Copyright © 2011-2022 走看看