盒模型布局详解

一、盒模型之display(显示方式)

一、display组成部分解释

1、块(block):其可以独行显示并且其自身支持宽高,其中宽可以设置为默认,高可以由子级或内容撑开(可以嵌套所有类型但是其中的p段落标签一般只允许内联嵌套)。

2、内联也叫行(inline):其可以同行显示并且不支持宽高是因为其宽高是由内容决定的(一般嵌套内联)。

3、内联块(inline-block):包含块和内联的所有特点,但是如果设置了宽高的话就一定要使用设置的宽高,如果值设置一种则按比例缩放(一般只作为最内层级)。

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>display</title>
    <!-- 默认值 -->
    <style type="text/css">
        div {
            /*块*/
            display: block;
            /*自适应父级可用content的宽度*/
            /*width: auto;*/
            /*默认0*/
            /*height: 0px;*/
        }
        span {
            /*内联*/
            display: inline;
            /*不支持宽高*/
        }
        img {
            /*内联块*/
            display: inline-block;
            width: auto;
            height: auto;
        }
    </style>
    <!-- 验证宽高设置 -->
    <style>
        .sup {
            /*width: 100px;*/
            /*height: 100px;*/
            background-color: orange
        }
        .sub {
            width: 200px;
            height: 200px;
            background-color: cyan
        }
        .s1, .s2 {
            width: 200px;
            height: 200px;
            background-color: brown
        }
        img {
            /*width: 350px;*/
            height: 350px;
        }
    </style>
</head>
<body>
    <div></div>
    <span></span>
    <img src="./img/icon.jpg" alt="">
    <img src="./img/icon.jpg" alt="">

    <div class="sup">
        <div class="sub"></div>
    </div>
    <span class="s1">123</span>
    <span class="s2">456</span>

</body>
</html>

display演示

二、盒模型之overflow(也为显示方式)

一、overflow基本组成属性

1、hidden:限制显示区域,超出父级区域的内容会被隐藏。

2、scroll:以滚动条的方式显示父级区域被裁剪的内容。

3、auto:将如果被裁剪的内容以滚动条的方式显示。

4、visible:默认值

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>voerflow</title>
    <!-- 显示区域只能由父级大小决定 -->
    <style type="text/css">
        /*子级区域大于父级*/
        .sup {
            width: 100px;
            height: 100px;
            /*默认值*/
            /*border: 3px none black;*/
            /*清除边框*/
            /*border: 0;*/
            /*border: none;*/
            /*最简单的设置*/
            border: solid;
        }
        .sub {
            width: 200px;
            height: 200px;
            background-color: red
        }
        /*对父级进行overflow设置*/
        .sup {
            /*以滚动的方式允许子级所有内容显示*/
            overflow: auto;
            /*overflow: scroll;*/

            /*只运行子级在父级所在区域的部分显示,超出的部分影藏*/
            /*overflow: hidden;*/
        }
    </style>
</head>
<body>
    <!-- display: block大环境下 -->
    <!-- <div class="sup">
        <div class="sub"></div>
    </div> -->
    <div class="sup">
        呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿 哈哈 呼呼 呵呵 嘻嘻 嘿嘿
    </div>
</body>
</html>

overflow演示

三、盒模型之隐藏

一、隐藏的基本属性

简述:通过opacity(0,1)来设置背景的透明度0表示透明、1表示不隐藏

二、实现隐藏的方式

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>隐藏</title>
    <style type="text/css">
        /*盒子间会相互影响*/
        div {
            width: 100px;
            height: 100px;
        }
        .d1 {
            background-color: red;
            /*以背景颜色透明度隐藏,不需要掌握*/
            /*盒子还在,内容或子级标签均会被显示*/
            background-color: transparent;
        }
        .d2 {
            background-color: orange;
            /*以盒子透明度隐藏:0~1*/
            /*盒子真正意思上透明,但盒子区域占位还在*/
            opacity: 0;
        }
        .d3 {
            background-color: cyan;
            /*盒子从文档中移除,盒子的区域占位消失*/
            /*当盒子重新获得显示方式,该盒子依旧从消失位置显示*/
            display: none;
        }
        .d4 {
            background-color: yellow;
        }
        /*需求:通过悬浮body让d3重新显示*/
        /*1.明确控制的对象 2.确定对该对象的修饰 3.找出修饰与对象的关系*/
        /*body:hover .d3*/
        .d1:hover ~ .d3 {
            display: block;
        }
    </style>
</head>
<body>
    <div class="d1">内容</div>
    <div class="d2">内容</div>
    <div class="d3"></div>
    <div class="d4"></div>
</body>
</html>

实现隐藏的方式

四、盒模型之border用法与margin用法

一、border用法

border用法

二、margin用法

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>margin</title>
    <style type="text/css">
        /*前提:sup显示区域宽全屏,高200px, sub显示区域宽高个100px*/
        /*需求1:sup左上右顶格显示*/
        html, body {
            /*body默认具有margin: 8px*/
            margin: 0;
        }
        .sup {
            width: auto;
            height: 200px;
            background-color: red;
        }
        .sub {
            width: 100px;
            height: 100px;
            background-color: orange;
        }
        /*需求2:sub在sup的水平中央显示*/
        /*.sup { 错误
            text-align: center;
        }*/
        .sub {
            /*上下0,左右auto*/
            /*auto:左右auto,自适应(平方)剩余可布局空间*/
            margin: 0 auto;
        }
        /*需求3:sub在sup的垂直中央显示*/
        /*垂直会遇到margin父子坑*/
        /*.sub { 不行
            margin: auto;
        }*/
        .sup {
            height: 100px;
            padding: 50px 0;
        }
        /*.sup {
            height: 100px;
            border-top: 50px solid red;
            border-bottom: 50px solid red;
        }*/
        /*需求4:sub在sup的水平居右显示*/
        .sub {
            margin-left: auto;
            /*margin-right: 0;*/
            margin-right: 10px;
        }
    </style>
</head>
<body>
    <div class="sup">
        <div class="sub"></div>
    </div>
</body>
</html>

margin用法

五、盒模型之样式支持与层级结构

一、样式支持用法

、盒模型<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>样式支持</title>
    <!-- 认识a标签一般怎么操作 -->
    <!-- 需求:具有页面转跳功能的图片 -->
    <style type="text/css">
        a {
            color: #333;
            text-decoration: none;
            display: block;
        }
    </style>
    <!-- 需求:图片在sup水平垂直中央显示 -->
    <!-- part1 -->
    <style type="text/css">
        .sup {
            width: 500px;
            /*height: 500px;*/
            background-color: red;
        }
        /*水平居中*/
        /*display对margin的支持*/
        /*block支持所有margin布局*/
        /*inline与inline-block只支持margin上下布局*/
        .sub {
            display: block;
            margin: 0 auto;
        }
        /*垂直居中*/
        .sup {
            /*去除高度设置*/
            padding: 50px 0;
        }
    </style>
    <!-- part2 -->
    <style type="text/css">
        .box {
            width: 500px;
            height: 500px;
            background: url(‘img/icon.jpg‘) no-repeat center orange;
        }
    </style>
</head>
<body>
    <!-- 认识a标签一般怎么操作 -->
    <!-- 需求:具有页面转跳功能的图片 -->
    <!-- <a href="">
        <img src="img/icon.jpg" >
    </a> -->

    <!-- 需求:图片在sup水平垂直中央显示 -->
    <!-- part1 -->
    <div class="sup">
        <img class="sub" src="img/icon.jpg" alt="">
    </div>
    <!-- part2 -->
    <div class="box"></div>
</body>
</html>

盒模型样式支持

二、层级结构

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>层级结构</title>
    <style type="text/css">
        .d5 {
            width: 200px;
            height: 180px;
            background: red;
        }
        .d2, .d3, .d4 {
            width: 80px;
            height: 40px;
            background: orange
        }
        .d4 {
            margin-left: 160px;
            margin-top: -80px;
        }
    /*    .d3 {
            margin-left: 80px;
            margin-top: -40px;
        }*/
        /*.d4 {
            margin-left: 160px;
            margin-top: -40px;*/
    /*    }*/
        /*没有层级结构情况下:*/
        /*1.盒子布局间相互影响程度很大*/
        /*2.要严格遵循从上至下布局顺序进行布局*/
        /*问题点:牵一发动全身*/
    </style>
    <style type="text/css">
        /*.menu {
            width: 200px;
            height: 100px;
            background: red;
        }
        .html, .css, .js {
            width: 80px;
            height: 40px;
            background: orange
        }
        .nav {
            width: calc(80px * 3);
            height: 40px;
        }
        .css {
            margin-top: -40px;
            margin-left: 80px;
        }
        .js {
            margin-top: -40px;
            margin-left: 160px;*/
        }
        /*menu的布局只与nav有连带关系,与实际显示内容的html,css,js不具有任何连带关系*/
    </style>
</head>
<body>
    <!-- 无层次结构 -->
    <div class="d1">w3c</div>
    <div class="d2">html</div>
    <div class="d3">css</div>
    <div class="d4">js</div>
    <div class="d5">menu</div>

    <!-- 有层次结构 -->
<!--     <div class="title">w3c</div>
    <div class="nav">
        <div class="html">html</div>
        <div class="css">css</div>
        <div class="js">js</div>
    </div>
    <div class="menu">menu</div> -->
</body>
</html>

盒模型层级结构

三、作业

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>w3c</title>
    <link rel="stylesheet" type="text/css" href="css/reset.css">
    <link rel="stylesheet" type="text/css" href="css/top.css">
    <link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
    <div class="wrap">
        <div class="top">
            <div class="start">
                <h1 class="title"></h1>
                <div class="search">
                    <div class="sc_position">
                        <div class="s_p_border"></div>
                        <div class="s_p_btn">GO</div>
                    </div>
                </div>
            </div>
            <div class="nav">
                <ul class="nav_list">
                    <li class="n_l_1"></li>
                    <li class="n_l_2"></li>
                    <li class="n_l_3"></li>
                    <li class="n_l_4"></li>
                    <li class="n_l_5"></li>
                    <li class="n_l_6"></li>
                    <li class="n_l_7"></li>
                </ul>
            </div>
        </div>
        <div class="main">
            <div class="m_left">
                <div class="nav_box">
                    <h2>html&nbsp;教程</h2>
                    <ul>
                        <li>html</li>
                        <li>html5</li>
                        <li>xhtml</li>
                        <li>css</li>
                        <li>css3</li>
                        <li>tcp/ip</li>
                    </ul>
                </div>
                <div class="nav_box">
                    <h2>浏览器脚本</h2>
                    <ul>
                        <li>javascript</li>
                        <li>jQuery</li>
                        <li>Ajax</li>
                    </ul>
                </div>
            </div>
            <div class="m_center">
                <div class="ct_box ct_intr">
                    <div class="ct_intr_box">
                        <h2>领先的 Web 技术教程 - 全部免费</h2>
                        <p>在w3school,你可以找到你所需要的所有的网站建设教程。</p>
                        <p>从基础的 HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP 和 ASP.NET。</p>
                        <p>从左侧的菜单选择你需要的教程!</p>
                    </div>
                </div>
                <div class="ct_box">
                    <div class="c_b_1">
                        <div class="c_b_txt">
                            <h2>完整的网站技术参考手册</h2>
                            <p>我们的参考手册涵盖了网站技术的方方面面。</p>
                            <p>其中包括W3C标准技术:HTML、CSS、XML 。以及其他技术,诸如 JavaScript、PHP、SQL 等。</p>
                        </div>
                    </div>
                    <div class="c_b_2">
                        <div class="c_b_txt">
                            <h2>在线实例测试工具</h2>
                            <p>在 w3school,我们提供上千个实例。</p>
                            <p>通过使用我们的在线编辑器,你可以编辑这些例子,并对代码进行实验。</p>
                        </div>
                    </div>
                </div>
            </div>
            <div class="m_right">

            </div>
        </div>
        <div class="end"></div>
    </div>
</body>
</html>

w3c基本框架演示

原文地址:https://www.cnblogs.com/ageliu/p/9715359.html

时间: 2025-01-12 19:00:00

盒模型布局详解的相关文章

CSS3中的弹性流体盒模型技术详解(一)

从这篇文章开始,会利用几个篇幅,我将跟大家分享 从CSS1到CSS3都是如何实现页面布局的(当然,所指的范畴是利用CSS技术). 由于盒子模型技术内容比较多,这篇文章我将着重讲解知识点. 下一篇文章,我会带领大家开发一个兼容 pc端浏览器和 移动端浏览器的弹性布局web界面的实例.希望大家能从中领受到CSS3在布局方面的强大功能. 好了,长话短说,现在开始我们的<CSS3中的弹性流体盒模型技术详解>之旅吧! 在讲解CSS3中新增的弹性布局属性之前,我们先回顾一下CSS1 和 CSS2中都已经定

CSS3中的弹性流体盒模型技术详解(二)

在上一篇文章<CSS3中的弹性流体盒模型技术详解(一)>里,我给大家列出了,从css1到css3各版本中盒子模型的基本元素.本篇我会把余下的属性进行详细讲解. box-pack 作用:用来规定子元素在盒子内的水平空间分配方式 box-pack 语法:box-pack: start | end | center | justify; start 对于正常方向的框,首个子元素的左边缘吸附在盒子的左边框显示 对于相反方向的框,最后子元素的右边缘吸附在盒子的右边框显示 end 对于正常方向的框,最后子

CSS3中的弹性流体盒模型技术详解

先回顾一下CSS1 和 CSS2中都已经定义了哪些布局方面的属性,这样也会增加我们理解弹性布局. 其实我们现在有很多一部分人,你们刚刚接触CSS层叠样式表,或者接触有一段时间了,但是却没有很好的去消化与理解.可能平时你们还一直在使用table,然后通过不断了合并单元格来实现网页布局.希望我今天的这篇文章能彻底改变大家的观念. Q:如何理解盒子模型? A:大家可以想一想,在现实生活中,如果我们拿一个盒子来装东西,那么盒子里面的东西是不是跟这个盒子之间会有空隙呢?站在里面物品的角度,则它们之间的间隙

iOS App沙盒模型文件目录详解Swift版

本文会比较全面的介绍iOS App沙盒模型的文件夹及其使用场景,以及通过swift取得这些文件夹的方法 iOS 中的沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件都要保存在此,例如属性文件 plist.文本文件.图像.图标.媒体资源等. iPhone沙箱模型的四个文件夹介绍和功能 1.Documents 目录:您应该将所有de应用程序数据文件写入到

【转载】图说C++对象模型:对象内存布局详解

原文: 图说C++对象模型:对象内存布局详解 正文 回到顶部 0.前言 文章较长,而且内容相对来说比较枯燥,希望对C++对象的内存布局.虚表指针.虚基类指针等有深入了解的朋友可以慢慢看.本文的结论都在VS2013上得到验证.不同的编译器在内存布局的细节上可能有所不同.文章如果有解释不清.解释不通或疏漏的地方,恳请指出. 回到顶部 1.何为C++对象模型? 引用<深度探索C++对象模型>这本书中的话: 有两个概念可以解释C++对象模型: 语言中直接支持面向对象程序设计的部分. 对于各种支持的底层

【div+css网页布局详解】

前言: 网页布局是制作一个网页的第一步也是最重要的一步,今天来详细谈一下使用div+css布局的方法. 用dw编写网页的时候是可以通过两种方法的,一是图形界面,二是代码,初学的话可以用图形界面,学的差不多的时候使用代码更能提高效率. 因为现在css3和之前css2有较大改动,咱们先从css2的说起吧. (笔者采用的是dreamweaver cs6,破解版下载地址:http://www.aa25.cn/download/954.shtml) 一.单列布局 一个网页编写手先要搭一个框架,就像下图样:

New UI-布局之TableLayout(表格布局)详解

New UI-布局之TableLayout(表格布局)详解  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://b

C语言的代码内存布局详解

一个程序本质上都是由 BSS 段.data段.text段三个组成的.这样的概念在当前的计算机程序设计中是很重要的一个基本概念,而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题. BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段:在采用段式内存管理的架构中,数据段(da

ExtJs4.1布局详解

Border布局: Ext.onReady(function(){ Ext.QuickTips.init(); Ext.create('Ext.container.Viewport', {   //一般是渲染到viewport中 title: "table布局的面板", layout:'border', defaults: { collapsible: true,  //可收起 split: true, bodyStyle: 'padding:15px' }, items: [{ ti