学习java之前端知识掌握Day004

目录

盒子模型

内边距padding

外边距margin

外边距的妙用

盒子型模的尺寸

box-sizing

标准文档流的组成

display属性

浮动

高度塌陷

清除浮动

解决父级边框塌陷的方法

浮动元素后面加空div

设置父元素的高度

父级添加overflow属性

 父级添加伪类after

inline-block和float的区别


盒子模型

内边距padding

    padding-left 
    padding-right
    padding-top
    padding-bottom
    padding

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        span {
            border: 1px solid red;
            /* 设置span标签中内容与边框之间的距离 */
            /* padding: 30px; */

            /* 设置上下内边距为20px,左右内边距为10px */
            /* padding: 10px 20px; */

            /* 上内边距10px,左右内边距20px 下内边距50px */
            /* padding: 10px 20px 50px; */

            /* 上内边距10px,左右内边距20px 下内边距50px */
            /* padding: 10px 20px 50px 80px; */

            padding-top: 10px;
            padding-right: 20px;
            padding-bottom: 60px;
            padding-left: 30px;
        }
    </style>
</head>
<body>
    <span>我是span标签</span>
</body>
</html>

外边距margin

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        
        .father{
            border: 3px solid red;
        }
        .son{
            width: 220px;
            height: 200px;
            border: 1px dashed blue;
            /* margin-top: 20px;
            margin-right: 10px;*/
            /*父元素没有设置宽度,占整个一行,所以设置右边距是没有作用的 */
            /* margin-bottom: 20px;
            margin-left: 30px; */

            /* margin: 60px; */
            /* margin:20px 50px */
            /* margin:20px 50px 100px; */
            margin:20px 50px 100px 80px;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

外边距的妙用

        网页居中对齐  margin:0px  auto;
        网页居中对齐的必要条件
            块元素
            固定宽度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 200px;
            height: 50px;
            border: 1px solid red;
            margin: 0px auto ;
            /* 元素内容水平居中通过 */
            text-align: center;
            /* 元素内容垂直居中,将行高属性与元素高度设置为一样就可以实现 */
            line-height: 50px;
        }
    </style>
</head>
<body>
    <div>我是div元素</div>
</body>
</html>

盒子型模的尺寸


    

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

box-sizing

content-box   默认值,盒子的总尺度
border-box    盒子的宽度或高度等于元素内容的宽度或高度
inherit   元素继承父元素的盒子模型模式

标准文档流的组成

    块级元素
        <h1>…<h6>、<p>、<div>、列表
    内联元素
        <span>、<a>、<img/>、<strong>...

display属性

    控制元素的显示和隐藏
    块级元素与行内元素的转变
    

浮动

设置左浮动  float:left
设置右浮动  float:right

高度塌陷

浮动元素脱离标准文档流

清除浮动

    clear属性

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>浮动</title>
    <link href="css/float.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="father">
    <div class="layer01"><img src="image/photo-1.jpg" alt="日用品"/></div>
    <div class="layer02"><img src="image/photo-2.jpg" alt="图书"/></div>
    <div class="layer03"><img src="image/photo-3.jpg" alt="鞋子"/></div>
    <div class="layer04">
        浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。
    </div>
</div>
</body>
</html>
div {
	margin:10px;
	padding:5px;
}
#father {
	border:1px #000 solid;
}
.layer01 {
	border:1px #F00 dashed;
	/*float:right;*/
	float:left;
}
.layer02 {
	border:1px #00F dashed;
	float:right;
}
.layer03 {
	border:1px #060 dashed;
	float:left;
}
.layer04 {
	border:1px #666 dashed;
	font-size:12px;
	line-height:23px;
	width: 200px;
	float: right;
	/*clear:left;*/
	/*clear: right;*/
	clear: both;
}

body {
	font-size:12px;
	line-height:22px;
}
#content {
	width:200px;
	height:150px;
	border:1px #000 solid;
	/*overflow:visible;*/
	/*overflow:hidden;*/
	/*overflow:scroll;*/
	overflow:auto;
}

解决父级边框塌陷的方法

浮动元素后面加空div

    简单,空div会造成HTML代码冗余

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>浮动</title>
    <link href="css/float.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="father">
    <div class="layer01"><img src="image/photo-1.jpg" alt="日用品"/></div>
    <div class="layer02"><img src="image/photo-2.jpg" alt="图书"/></div>
    <div class="layer03"><img src="image/photo-3.jpg" alt="鞋子"/></div>
    <div class="layer04">
        浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。
    </div>
    <!--方法一:空div防止父级边框塌陷-->
    <div class="clear"></div>
</div>
</body>
</html>
div {
	margin:10px;
	padding:5px;
}
#father {
	border:1px #000 solid;
}
.layer01 {
	border:1px #F00 dashed;
	float:left;
}
.layer02 {
	border:1px #00F dashed;
	float:right;
}
.layer03 {
	border:1px #060 dashed;
	float:left;
}
.layer04 {
	border:1px #666 dashed;
	font-size:12px;
	line-height:23px;
	width: 200px;
	float: right;
}
.clear{
	clear: both;
	margin: 0;
	padding: 0;
}

设置父元素的高度

    简单,元素固定高会降低扩展性

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
<title>浮动</title>
<link href="css/float.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="father">
  <div class="layer01"><img src="image/photo-1.jpg" alt="日用品" /></div>
  <div class="layer02"><img src="image/photo-2.jpg" alt="图书" /></div>
  <div class="layer03"><img src="image/photo-3.jpg" alt="鞋子" /></div>
  <div class="layer04">浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。</div>
</div>
</body>
</html>
div {
	margin:10px;
	padding:5px;
}
#father {
	border:1px #000 solid;
	/*方法二:在父级里设置高度来防止边框塌陷*/
	height: 400px;
}
.layer01 {
	border:1px #F00 dashed;
	float:left;
}
.layer02 {
	border:1px #00F dashed;
	float:right;
}
.layer03 {
	border:1px #060 dashed;
	float:left;
}
.layer04 {
	border:1px #666 dashed;
	font-size:12px;
	line-height:23px;
	width: 200px;
	float:left;
}

父级添加overflow属性

    溢出处理overflow属性    
    简单,下拉列表框的场景不能用

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>浮动</title>
    <link href="css/float.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="father">
    <div class="layer01"><img src="image/photo-1.jpg" alt="日用品"/></div>
    <div class="layer02"><img src="image/photo-2.jpg" alt="图书"/></div>
    <div class="layer03"><img src="image/photo-3.jpg" alt="鞋子"/></div>
    <div class="layer04">
        浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。
    </div>
</div>
</body>
</html>
div {
	margin:10px;
	padding:5px;
}
#father {
	border:1px #000 solid;
	overflow: hidden;
}
.layer01 {
	border:1px #F00 dashed;
	float:left;
}
.layer02 {
	border:1px #00F dashed;
	float:right;
}
.layer03 {
	border:1px #060 dashed;
	float:left;
}
.layer04 {
	border:1px #666 dashed;
	font-size:12px;
	line-height:23px;
	width: 200px;
	float:left;
}

 父级添加伪类after

    .clear:after{
    content: '';          /*在clear类后面添加内容为空*/
    display: block;      /*把添加的内容转化为块元素*/
    clear: both;         /*清除这个元素两边的浮动*/
}
    写法比上面稍微复杂一点,但是没有副作用,推荐使用

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
<title>浮动</title>
<link href="css/float.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="father" class="clear">
  <div class="layer01"><img src="image/photo-1.jpg" alt="日用品" /></div>
  <div class="layer02"><img src="image/photo-2.jpg" alt="图书" /></div>
  <div class="layer03"><img src="image/photo-3.jpg" alt="鞋子" /></div>
  <div class="layer04">浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。</div>
</div>
</body>
</html>
div {
	margin:10px;
	padding:5px;
}
#father {
	border:1px #000 solid;

}
.layer01 {
	border:1px #F00 dashed;
	float:left;
}
.layer02 {
	border:1px #00F dashed;
	float:right;
}
.layer03 {
	border:1px #060 dashed;
	float:left;
}
.layer04 {
	border:1px #666 dashed;
	font-size:12px;
	line-height:23px;
	width: 200px;
	float:left;
}

.clear:after{
	content: '';         /*在clear后面添加内容为空*/ 
	display: block;      /*把添加的内容转化为块元素*/
	clear: both;         /*清除这个元素两边的浮动*/
}

inline-block和float的区别

    display:inline-block
        可以让元素排在一行,并且支持宽度和高度,代码实现起来方便
        位置方向不可控制,会解析空格
    float 
        可以让元素排在一行并且支持宽度和高度,可以决定排列方向
        float 浮动以后元素脱离文档流,会对周围元素产生影响,必须在它的父级上添加清除浮动的样式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放在糖果旁的是我很想回忆的甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值