Blogger Information
Blog 15
fans 0
comment 0
visits 9591
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CSS页面布局的应用2018年8月17日20时00分
Kenxc2011的博客
Original
626 people have browsed it

今天主要学习了 网站的布局,首先是元素的定位布局,以及经典的双飞翼和圣杯布局。下面根据元素布局,展开说明i:


  1. 固定定位制作QQ在线客 服;


实例

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>固定定位</title>
</head>
<body>
    <!--
    1. 固定定位与绝对定位是双胞胎,唯一的区别是定位父级不同.
    2. 绝对定位是相对于它最近的有定位属性的父级区块进行定位;
    3. 固定定位永远相对于当前的窗口进行定位(body)
    -->

    <style>
        .box1 {
            position: fixed;
            bottom: 0; /*底部*/
            right: 0; /*右边*/
        }
        .close {
            position: absolute;
            right: 20px;
            top: 10px;
        }
    </style>

    <div class="box1">
        <a href="http://php.cn/k.html"><img src="http://demo.lanrenzhijia.com/2015/service0916/index.jpg" alt="客!服"></a>


    </div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例



2.浮动实现图文混排;

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图文混排</title>
</head>
<body>
<style>
    h2, p {
        margin: 0;
    }
    .box {
        width: 700px;
        background-color: #efefef;
        font-size: 1rem;
        color: #555;
        border-radius: 1rem;
        padding: 20px;
    }

    .box h2 {
        text-align: center;
        margin-bottom: 20px;
    }
    .box img {
        width: 250px;
        float: left;
        margin-right: 20px;
        margin-bottom: 20px;
    }

    .box p {
        text-indent: 2rem;
        line-height: 1.5rem;
    }
</style>
<div class="box">
    <h2>腾讯客1服</h2>
    <img src="images/ads.jpg" alt="">
    <p>腾讯客1服成立于2002年,承接了腾讯集团的所有业务的海量用户服务,一直以来致力于依托先进的互联网技术,致力于通过建设多元化特色渠道,智能化解决用户问题,同时传递用户
    </p>
</div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


3.实例演示双飞冀三列布局;

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>经典的三列双飞翼布局</title>
    <style type="text/css">
        /*先给最简单的头部和底部设置基本的样式*/
        .header, .footer {
            /*宽度为窗口的宽度,自适应变化*/
            width: 100%;

            /*为了简化,头部与尾部高度统一设置为60px*/
            height: 60px;

            /*参考背景色:浅灰*/
            background-color: lightgray;
        }

        .footer {
            /*底部二边不能有浮动元素*/
            clear: both;
        }

        /*设置头部和底部的中间内容区的基本样式*/
        .content {
            /*先设置总的宽度,这步很重要*/
            width: 1000px;

            /*高度直接引用父区块值*/
            min-height: 100%;

            /*设置参考色:灰色*/
            background-color: gray;

            /*使自己水平居中*/
            margin: auto;

            /*使其内部的文本水平垂直居中*/
            text-align: center;
            line-height: 60px;
        }

        /*设置主体的基本样式*/
        .container {
            /*设置主体的总宽度:非常关键*/
            width: 1000px;

            /*设置主体内部所有区块水平居中*/
            margin:auto;

            /*使当前区块能够包住内部的浮动区块*/
            overflow: hidden;

            /*设置背景参考色*/
            background-color: yellow;
        }

        /*设置主体区域中的中间区块的基本样式*/
        .wrap {
            /*宽度与父区块相同,独占整行,这很重要,可确保后面的浮动元素换行显示*/
            width: 100%;

            /*参考背景色: 青色*/
            background-color: cyan;

            /*左浮动,脱离文档流*/
            float: left;
        }

        /*设置中间区块的样式*/
        .main {
            /*注意:它的宽度是在父区块wrap中设置了,这里不需要重复设置*/

            /*给中间内容区设置一个最小高度,这个最终会被真实内容替换*/
            min-height:600px;

            /*设置左右外边距为left和right的宽度,使他们显示到正确位置*/
            margin: 0 200px;  /*这是最后一步*/


            /*参考背景色:小麦色*/
            background-color: wheat;

        }
        .left {
            /*宽度是必须设置的*/
            width: 200px;

            /*同理,也设置一个最小高度*/
            min-height:600px;

            /*设置左浮动:与前面元素一起排列*/
            float:left;

            /*将左区块拉回到中间区块的起始位置处*/
            margin-left:-100%;

            /*设置背景参考色:天蓝色*/
            background-color: lightskyblue;
        }

        /*设置右边区块的基本样式*/
        .right {
            /*同样也要先设置一个宽度*/
            width: 200px;

            /*高度与先给一个最小高度做为参考,最终会被实际内容替换*/
            min-height:600px;

            /*同样也要设置左浮动,依次排到left区块的后面*/
            float:left;

            /*将右区块拉回到上一行的最右侧*/
            margin-left:-200px;

            /*背景参考色:浅绿*/
            background-color: lightgreen;

        }

    </style>
</head>
<body>


<!-- DOM结构 -->

<!-- 头部 -->
<div class="header">
    <div class="content">网站头部</div>
</div>

<!-- 主体 -->
<div class="container">

    <div class="wrap">
        <div class="main"><img src="http://www.php.cn/static/k/img1-1.jpg" alt="主体"> </div>
    </div>

    <div class="left"><img src="https://img.php.cn/upload/course/000/000/001/5b69682bd63ba306.png" alt="左侧"></div>

    <div class="right"><img src="http://www.php.cn/static/k/phpcn_erwei.jpg" alt="右侧"></div>

</div>

<!-- 底部 -->
<div class="footer">
    <div class="content">网站底部</div>
</div>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

4.实例演示圣杯三列布局;

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>经典的三列圣杯布局</title>
    <style type="text/css">
        .header, .footer {
            width: 100%;
            height: 60px;
            background-color: lightgray;
        }

        .footer {
            clear: both;
        }

        .content {
            width: 1000px;
            height: 100%;
            background-color: gray;
            margin: auto;
            text-align: center;
            line-height: 60px;
        }

        .container {
            width: 600px;
            background-color: yellow;

            /*父容器自身以及内部所有区块main,left,right水平居中*/
            margin:auto;

            /*使它能包住浮动区块*/
            overflow: hidden;

            /*因为左右区块现在覆盖在main之上,挡住了main的内容,现在添加padding来实现自身内容显示*/
            padding:0 200px;


        }

        .container .main {
            /*因为暂无内容,先给main,left,right设置一个最小行高*/
            min-height: 650px;

            /*宽必必须为100%,即与父元素container一致,这样才能使left,right挤下来*/
            width: 100%;
            float:left;

            /*设置参考背景色:小麦色*/
            background-color: wheat;
        }

        .container .left {
            /*除main外,left和right必须设置宽度*/
            width: 200px;
            /*最小高度*/
            min-height: 650px;

            /*左浮动后,因为前面main占据100%宽度,所以自动挤到下一行首*/
            float:left;

            /*设置左外边距margin为-100%,使它回到main区块的起始点处*/
            margin-left: -100%;

            /*关键步骤:相对定位,向左为负200,相当于向右移动200px;*/
            position: relative;
            left: -200px;

            /*设置参考背景色:天蓝色*/
            background-color: lightskyblue;

        }

        .container .right {
            width: 200px;
            min-height: 650px;

            /*左浮动后,因为前面main占据100%宽度,所以自动挤到下一行,
            并且还遇到前面已经浮动过来的left左侧的区块,所以排到left右边*/
            float:left;

            /*设置左外边距为当前宽度的负值,使之定位到main区块的右边*/
            margin-left:-200px;

            /*关键步骤:设置为相对定位,right:-200px意思是向左边移动200px;*/
            position: relative;
            right:-200px;

            /*设置参考背景色:清绿色*/
            background-color: lightgreen;
        }
    </style>
</head>
<body>
<!-- DOM结构 -->
<!-- 头部 -->
<div class="header">
    <div class="content">网站头部</div>
</div>

<!-- 内容区 -->
<div class="container">
    <div class="main"><div class="main"><img src="http://www.php.cn/static/k/img1-1.jpg" alt="主体"> </div>
    <div class="left"><img src="https://img.php.cn/upload/course/000/000/001/5b69682bd63ba306.png" alt="左侧"></div>
    <div class="right"><img src="http://www.php.cn/static/k/phpcn_erwei.jpg" alt="右侧"></div>
</div>

<!-- 底部 -->
<div class="footer">
    <div class="content">网站底部</div>
</div>




</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


5.双飞冀与圣杯布局的两者的最大区别在于对中间内容区的处理上:

双飞冀:

1.中间区块必须要套一个父级容器;

2.将父级容器宽度设置为100%,将要渲染的内容放在内部的主体盒子中;

3.当左右区块通过设置负外边距方式与主体同行后;

4.再通过给内容容器的父容器设置左右外边距margin的方式,将左右二列排列到位.


圣杯:

1.不需要为中间内容区创建父级容器,DOM结构比双飞冀略微简单些;

2.其它操作与双飞冀基本相同,只不是中间区块的内容是通过相对定位来实现的.


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post