盒子模型

简介: 盒子模型

div


div 可定义文档中的分区(division)。

div 标签可以把网页分割为独立的、不同的部分。

image.png


image.png

可以看成以下结构:


image.png

image.png

<div> 不像 h1,p标签,没有任何默认样式,其主要作用是标识网页上的某块区域。常见做法是通过给div元素加上id或class

,然后通过css选中某个div,对其进行样式美化。

<div class="demo">我是一个div</div>

<style>
        .demo{
            color:red;
            font-size: 20px;
        }   
</style>


image.png

image.png

每个div可以看成一个盒子

一个盒子中主要的属性有5个:width、height、padding、border、margin。如下:

width:内容的宽度。CSS中 width 指的是内容的宽度,而不是盒子的宽度。盒子的宽度=内容宽度+padding+border

height:内容的高度。CSS中 height 指的是内容的高度,而不是盒子的高度。盒子的高度=内容高度+padding+border

padding:内边距。

border:边框。

margin:外边距。


image.png

image.png


元素宽高

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>        div {
        width: 200px;
        height: 200px;
        background-color: gray;
    }    </style>
</head>
<body>
<div>我是一只小小鸟</div>
</body>
</html>


image.png


image.png


边框

属性          说明                          示例

border-top-color    上边框颜色                       border-top-color:#369;

border-right-color  右边框颜色                       border-right-color:#369;

border-bottom-color 下边框颜色                       border-bottom-color:#fae45b;

border-left-color   左边框颜色                       border-left-color:#efcd56;

border-color        四个边框为同一颜色                   border-color:#eeff34;

上、下边框颜色:#369

左、右边框颜色:#000

border-color:#369 #000;

上边框颜色:#369

左、右边框颜色:#000

下边框颜色:#f00

border-color:#369 #000 #f00;

上、右、下、左边框颜色:

#369、#000、#f00、#00f

border-color:#369 #000 #f00 #00f;

边框粗细

border-width:像素值

order-top-width:5px;
        border-right-width:10px;
        border-bottom-width:8px;
        border-left-width:22px;
        border-width:5px ;
        border-width:20px 2px;
        border-width:5px 1px 6px;
        border-width:1px 3px 5px 2px;

边框样式

none

hidden

dotted

dashed

solid

double

border-top-style:solid;
        border-right-style:solid;
        border-bottom-style:solid;
        border-left-style:solid;
        border-style:solid ;
        border-style:solid dotted;
        border-style:solid dotted dashed;
        border-style:solid dotted dashed double;

border简写

同时设置边框的颜色、粗细和样式

border-bottom: 9px #F00 dashed ;
        border: 9px #F00 dashed ;

外边距

margin-top
    margin-right
    margin-bottom
    margin-left
    margin

margin-top: 1px 
            margin-right : 2 px 
            margin-bottom : 2 px 
            margin-left : 1 px 
            margin : 3 px 5 px 7 px 4 px;
            margin: 3px 5px;
            margin: 3px 5px 7px;
            margin: 8px;

外边距的妙用

网页居中对齐

前提,居中对齐的网页元素必须设定宽度。

margin:0px  auto;

内边距

padding

padding-left

padding-right

padding-top

padding-bottom

padding

padding-left:10px;
padding-right: 5px;
padding-top: 20px;
padding-bottom:8px;
padding:20px 5px 8px 10px ;
padding:10px 5px;
padding:30px 8px 10px ;
padding:10px;


盒子型模的尺寸

image.png

image.png

盒子模型总尺寸=border-width+padding+margin+内容宽度


元素默认样式


很多标签都有自己的默认样式

我们在chrome浏览器中运行时,可以通过开发者工具(快捷键Ctrl+Shift+I)来一个个审查元素,来看看它们的默认样式

body标签的margin为8px

image.png


image.png

p标签的上下外边距为16px


image.png

image.png

h1标签的上下外边距为21.440px


image.png

image.png

ul标签的上下外边距也为16px,左内边距也为40px


image.png

image.png


重置默认样式


为了兼容性,凡是浏览默认的样式,都不要使用。

重置默认样式 (css reset)

/*默认样式重置(css reset)*/
        body, p, h1, h2, h3, h4, h5, h6, dl, dd {
            margin: 0;
            font-size: 12px; /* 中文字体大小的最小值 */
        }
        ol, ul {
            list-style: none; /* 去除列表样式 */
            padding: 0;
            margin: 0;
        }
        a {
            text-decoration: none;
        }

练习 有路网右侧黑板报

image.png


image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="reset.css">
    <style>
        .black-board{
            width: 220px;
        }
        .black-board h2{
            font-size: 18px;
            padding-top: 6px;
            /*border: 1px solid red;*/
            padding-bottom: 6px;
        }
        .black-board a{
            color: black;
            line-height: 22px;
        }
        .black-board a:hover{
            color: orange;
            text-decoration: underline;
        }
        .black-board ul{
            padding-left: 22px;
            padding-bottom: 6px;
        }
        .black-board .report
        {
            border-bottom: 1px solid gray;
            border-right: 1px solid gray;
            padding-left: 10px;
        }
        .black-board .shopping{
            border-bottom: 1px solid gray;
            border-right: 1px solid gray;
            padding-left: 10px;
            margin-bottom: 10px;
        }
    </style>
</head>
<body>
<div class="black-board">
    <div class="report">
        <h2>黑板报</h2>
        <ul>
            <li><a href="#">双十一积分兑好礼</a></li>
            <li><a href="#">双十一积分兑好礼</a></li>
            <li><a href="#">双十一积分兑好礼</a></li>
            <li><a href="#">双十一积分兑好礼</a></li>
        </ul>
    </div>
    <div class="shopping">
        <h2>购物指南</h2>
        <ul>
            <li><a href="#">支付宝担保交易,安全快捷</a></li>
            <li><a href="#">支付宝担保交易,安全快捷</a></li>
            <li><a href="#">支付宝担保交易,安全快捷</a></li>
            <li><a href="#">支付宝担保交易,安全快捷</a></li>
            <li><a href="#">支付宝担保交易,安全快捷</a></li>
            <li><a href="#">支付宝担保交易,安全快捷</a></li>
            <li><a href="#">支付宝担保交易,安全快捷</a></li>
        </ul>
    </div>
    <div class="ads">
        <img src="zhinan.jpg">
    </div>
</div>
</body>
</html>

练习 有路网左侧图书分类

image.png

image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="reset.css" rel="stylesheet">
    <style>
        .book-info
        {
            width: 210px;
        }
        .book-info li
        {
            border-bottom: 1px solid gray;
            border-right: 1px solid gray;
            padding-left: 30px;
            padding-right: 18px;
            padding-bottom: 10px;
        }
        .book-info h2
        {
            font-size: 14px;
            padding-left: 4px;
            padding-top: 6px;
            margin-bottom: 4px;
        }
        .book-info a{
            line-height: 24px;
            color: #666666;
        }
        .book-info a:hover{
            text-decoration: underline;
        }
        .book-browse h3
        {
            border-right: 1px solid gray;
            font-size: 14px;
            font-weight: bold;
            padding-top: 10px;
            padding-bottom: 10px;
            padding-left: 8px;
        }
        .book-info h3 a:hover{
            color: orange;
        }
    </style>
</head>
<body>
<div class="book-info">
    <div class="book-category">
        <ul>
            <li>
                <h2>经济管理</h2>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
            </li>
            <li>
                <h2>经济管理</h2>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
            </li>
            <li>
                <h2>经济管理</h2>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
            </li>
            <li>
                <h2>经济管理</h2>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
            </li>
            <li>
                <h2>经济管理</h2>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
            </li>
            <li>
                <h2>经济管理</h2>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
                <a href="#">市场营销</a>
            </li>
        </ul>
    </div>
    <div class="book-browse">
        <h3><a href="#">浏览所有图书分类</a></h3>
    </div>
    <div class="book-ads">
        <a href="#"><img src="haoshu.jpg"></a>
    </div>
</div>
</body>
</html>

元素分类


行级(内联)元素

块级元素

内联块元素


行级元素


a

strong

em

内嵌元素的特性:

1.默认同行可以继续跟同类型标签

2.内容撑开宽度

3.不支持宽高

4.不支持上下的margin

span

span是一个特殊的行级标签,和div(块级标签)一样,没有任何语义(样式)。

通常用来着重显示某行文字中的某个单词


image.png

image.png

练习 制作参考文献页面

image.png


image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>制作参考文献</title>
    <style type="text/css">
        span{
            color: red;
        }
    </style>
</head>
<body>
<h3>参考文献</h3>
<p>
    [1]<span>顾天晓.</span> Java程序动态更新技术研究[D].南京大学,2017.
</p>
<p>
    [2]<span>陆鹿,严立龙,李秋环,曾璐,金鑫,张玉修,侯泉林,张开均.</span>洋底高原及其对地球系统意义研究综述[J].岩
石学报,2016,32(06):1851-1876.
</p>
<p>
    [3]<span>黄玉坤,陈榕,裴喜龙,曹璟.</span>基于跨语言对象迁移策略的复合本地对象模型[J].计算机研究与发
展,2015,52(01):141-155.
</p>
<p>
    [4]<span>李数函.</span> 基于GP规范的JAVA智能卡操作系统研究[D].电子科技大学,2014.
</p>
<p>
    [5]<span>胡光.</span> 硬Java实时嵌入式平台及其关键技术研究[D].复旦大学,2012.
</p>
<p>
    [6]<span>邱江.</span> 十七世纪至十九世纪初爪哇农业地理初探(1602-1816)[D].暨南大学,2011.
</p>
<p>
    [7]<span>杨克峤.</span> Java程序优化与数据竞争检测的研究[D].复旦大学,2010.
</p>
<p>
    [8]<span>邓洋春.</span> Java虚拟机关键机制研究与实践[D].中南大学,2009.
</p>
<p>
    [9]<span>董威.</span> 多应用智能卡新技术研究[D].北京邮电大学,2008.
</p>
<p>
    [10]<span>王会进,龙舜.</span>Java性能优化技术综述[J].小型微型计算机系统,2008(04):720-725.
</p>
</body>
</html>

块级元素


p

div

h1~h6

ol-li

ul-li

dl-dt-dd

块元素的特性


1.默认独占一行显示

2.没有宽度时,默认撑满一排

3.支持所有css命令


内联块元素—代表元素img


inline-block的特点:

元素在一行显示

支持宽高

没有宽度的时候内容撑开宽度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>        
        img {
        width: 300px;
        height: 200px;
        }    
    </style>
</head>
<body>
<img src="img/1.jpg">
<img src="img/2.jpg">
</body>
</html>


image.png


image.png


display属性


控制元素的显示和隐藏

块级元素与行级元素的转变

值       说明

block       块级元素的默认值,元素会被显示为块级元素,该元素前后会带有换行符

inline      内联元素的默认值。元素会被显示为内联元素,该元素前后没有换行符

inline-block    内联块元素

none        设置元素不会被显示


练习 有路网顶部导航

image.png


image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="reset.css">
    <style>
        .nav{
            height: 30px;
            line-height: 30px;
            background-color: #F4F4F4;
        }
        .nav .welcome{
            padding-left: 120px;
            margin-right:416px;
        }
        .nav li{
            display: inline-block;
            /*border: 1px solid blue;*/
        }
        .nav li a{
            /*border: 1px solid red;*/
            color: black;
            padding: 0px 12px;
            border-right: 1px solid gray;
        }
        .nav li a:hover{
            color: orange;
            text-decoration: underline;
        }
        .nav .red
        {
            color: red;
        }
        .nav .last
        {
            border-right: 0px solid gray;
        }
    </style>
</head>
<body>
<div class="nav">
    <ul>
        <li class="welcome">
            <img src="welcome.jpg">
            您好,欢迎光临有路网!
        </li>
        <li><a href="#" class="red">我的有路</a></li>
        <li><a href="#">我的有路</a></li>
        <li><a href="#">我的有路</a></li>
        <li><a href="#">我的有路</a></li>
        <li><a href="#">我的有路</a></li>
        <li><a href="#">我的有路</a></li>
        <li>
            <a href="#">
                <img src="ico_phone.gif">
                我的有路
            </a>
        </li>
        <li><a href="#" class="last">我的有路</a></li>
    </ul>
</div>
</body>
</html>

背景图像

背景图像

background-image属性

background-image:url(图片路径);


背景重复方式

background-repeat属性

repeat:沿水平和垂直两个方向平铺

no-repeat:不平铺,即只显示一次

repeat-x:只沿水平方向平铺

repeat-y:只沿垂直方向平铺


背景定位

background-position属性

Xpos  Ypos

单位:px

Xpos表示水平位置,Ypos表示垂直位置

X%  Y%

使用百分比表示背景的位置

X、Y方向关键词

水平方向的关键词:left、center、right

垂直方向的关键词:top、center、bottom


项目实战 制作分页

image.png

image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="reset.css" rel="stylesheet">
    <style>
        .page{
            width: 600px;
            height: 60px;
            background-color: #E8E8E8;
            margin: 0 auto;
            margin-top: 90px;
            line-height: 60px;
            text-align: center;
        }
        .page li{
            display: inline-block;
        }
        .page li a{
            border: 1px solid gray;
            color: black;
            padding: 6px 8px;
            background-color: white;
        }
        .page li a:hover{
            border: 1px solid red;
            color: red;
        }
        .page .active{
            background-color: #FCF9EA;
            cursor: text;
            font-weight: bold;
        }
        .page .active:hover
        {
            border: 1px solid gray;
            color: black;
        }
    </style>
</head>
<body>
<div class="page">
    <ul>
        <li><a href="#">上一页</a></li>
        <li><a href="#" class="active">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">1</a></li>
        <li><a href="#">...87</a></li>
        <li><a href="#">下一页</a></li>
    </ul>
</div>
</body>
</html>


课后作业


必做任务

1.制作图片商品列表(div标签,边距,填充)

2.注册窗口( div标签,边距,填充)

扩展任务

1.制作家用电器分类(div的嵌套)

2.制作音乐列表(背景图像)

3.制作抽屉样式(div的隐藏)

目录
相关文章
|
28天前
|
前端开发 容器
给 CSS 盒子模型添加边框时,需要注意什么?
在给CSS盒子模型添加边框时,需要注意边框的宽度、样式和颜色,以及它如何影响盒子的总尺寸和布局。边框会增加盒子的总宽度和高度,可能需要调整其他属性以保持布局的完整性。
|
2月前
|
前端开发
前端基础(八)_盒子模型(标准盒子模型和怪异盒子模型)
本文介绍了CSS盒子模型的基本概念,包括内容、内边距、边框和外边距的属性,以及标准盒子模型和怪异盒子模型的区别和转换方法。
49 1
前端基础(八)_盒子模型(标准盒子模型和怪异盒子模型)
|
2月前
|
容器
认识盒子模型
认识盒子模型。
47 2
|
5月前
|
前端开发
CSS基础-盒模型:边框、内边距、外边距
【6月更文挑战第8天】Web设计中的盒模型由内容区域、内边距、边框和外边距组成,是理解页面布局的关键。内容区域包含实际内容,内边距提供间隔,边框定义元素边界,外边距控制元素间距。常见易错点包括边框宽度计算、外边距折叠和盒模型理解不透彻。通过实践和媒体查询可解决响应式设计挑战,`border-radius`可能导致圆角问题。理解盒模型并灵活应用能创建多样化布局。
86 6
|
6月前
|
前端开发
盒子模型练习
盒子模型练习
24 0
|
6月前
|
前端开发
说说你对盒子模型的理解
该文介绍了CSS中的盒子模型,包括W3C标准盒子模型和IE怪异盒子模型。在标准模型中,元素宽度不包含padding和border,总宽度=width+padding+border+margin。而在IE怪异模型中,width和height包含padding和border,总宽度和高度仅加margin。CSS的box-sizing属性用于控制元素的盒模型,content-box遵循标准模型,border-box则类似IE模型。
|
5月前
|
前端开发
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
49 0
|
前端开发 开发者
标准盒子模型,与怪异盒子模型详解
标准盒子模型,与怪异盒子模型详解
170 0
|
前端开发
【说说你对盒模型的理解】
【说说你对盒模型的理解】
【说说你对盒模型的理解】