Web前端开发之CSS学习笔记4—边框、边距、元素尺寸

目录

一、边界

1.border边框

2.border-style属性:边框样式

3.border-width属性:边框的粗度

4.border-top/right/bottom/left属性:为上下左右边框设置样式、宽度、颜色

5.padding-left/top/right/bottom:上下左右内边距

6.圆角边框border-radius 

7.图像边框border-image

8.轮廓outline

9.box-shadow阴影

二、内边距padding

三、外边距margin

四、尺寸

1.box-sizing属性:设置元素尺寸

2.设置元素最大值和最小值

3.块级元素尺寸


一、边界

1.border边框

语法:border:border-width|border-style|border-color;

border-width:规定边框的宽度

border-style:规定边框的样式

border-color:规定边框的颜色

例子:border

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>边界</title>
		<style type="text/css">
			p
			{
				width: 99px;
				border: 3px dotted green; /*虚线*/
			}
		</style>
	</head>
	<body>
		<p>好好学习</p>
	</body>
</html>

2.border-style属性:边框样式

border-style属性用于设置元素所有边框的样式,或者单独地为各边设置边框样式。

语法:border-style:none|hidden|inherit;

属性值:

例子:border-style

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>边框的各种样式</title>
		<style type="text/css">
			p.none{border-style: none;} /*没有边框 */
			p.solid{border-style: solid;} /*实线边框 */
			p.dashed{border-style: dashed;} /* 虚线边框*/
			p.dotted{border-style: dotted;} /*圆点边框 */
			p.double{border-style: double;} /*双线边框 */
			p.groove{border-style: groove;} /* 3D槽线边框*/
			p.ridge{border-style: ridge;} /* 3D脊线边框*/
			p.inset{border-style: inset;} /*3D内凹边框 */
			p.outset{border-style: outset;} /*3D外凸边框 */
			p.hidden{border-style:hidden;} /* 隐藏边框*/
		</style>
	</head>
	<body>
		<p class="none">没有边框</p>
		<p class="solid">实线边框</p>
		<p class="dashed">虚线边框</p>
		<p class="dotted">圆点边框</p>
		<p class="double">双线边框</p>
		<p class="groove">3D槽线边框</p>
		<p class="ridge">3D脊线边框</p>
		<p class="inset">3D内凹边框</p>
		<p class="outset">3D外凸边框</p>
		<p class="hidden">隐藏边框</p>
	</body>
</html>

3.border-width属性:边框的粗度

语法:border-width:medium|thin|thick|length|inherit;

注:"border-width" 属性如果单独使用的话是不会起作用的。请首先使用 "border-style" 属性来设置边框。 只有当边框样式不是 none 时才起作用。如果边框样式是 none,边框宽度实际上会重置为 0。不允许指定负长度值。

描述
thin定义细的边框。
medium默认值。定义中等的边框。
thick定义粗的边框。
length允许您自定义边框的宽度。
inherit规定应该从父元素继承边框宽度。

border-width:thin medium thick 10px;

  • 上边框是细边框
  • 右边框是中等边框
  • 下边框是粗边框
  • 左边框是 10px 宽的边框

border-width:thin medium thick;

  • 上边框是细边框
  • 右边框和左边框是中等边框
  • 下边框是粗边框

border-width:thin medium;

  • 上边框和下边框是细边框
  • 右边框和左边框是中等边框

border-width:thin;

  • 所有4个边框都是细边框

 

例子:border-width:10px

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>边框宽度和颜色</title>
		<style type="text/css">
			p{
				border-style: solid;
				border-width: 10px;  /*边框宽度*/
				border-color: #82d2d6;
				font-size: 30px; /*字体大小*/
			}
		</style>
	</head>
	<body>
		<p>雄关漫道真如铁</p>
		<p>而今迈步从头越</p>
		<p>从头越</p>
		<p>苍山如海,残阳如血</p>
	</body>
</html>

 

例子:border-width

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>边框</title>
		<style type="text/css">
			p{
				width: 500px;
			}
			.one
			{
				border-style: solid;  /*"border-width" 属性如果单独使用的话是不会起作用的。请首先使用 "border-style" 属性来设置边框。*/
				border-width: thin  /*细边框*/
			}
			.two
			{
				border-style: solid;
				border-width: medium   /* 中等边框 */
			}
			.three
			{
				border-style: solid;
				border-width: thick   /* 粗边框 */
			}
			.four
			{
				border-style: solid;
				border-width: 10px   /* 自定义边框宽度 */
			}
			.five
			{
				border-style: solid;
				border-width: 5px 10px   /* 上下5,左右10 */
			}
			.six
			{
				border-style: solid;
				border-width: 5px 10px 1px   /* 上5 右10 下1 左10*/
			}
			.seven
			{
				border-style: solid;
				border-width: 5px 10px 1px 20px  /* 上5 右10 下1 左20 */
			}
		</style>
	</head>
	<body>
		<p class="one">1——细边框</p>
		<p class="two">2——中等边框</p>
		<p class="three">3——粗边框</p>
		<p class="four">4——自定义边框宽度10px</p>
		<p class="five">5——上下5px,左右10px </p>
		<p class="six">6——上5px,右10px,下1px,左10px</p>
		<p class="seven">7——上5px,右10px,下1px,左20px</p>
	</body>
</html>

 

 

注:边框简写

 <style type="text/css">
        p{
                border-style: solid;
                border-width: 10px;  /*边框宽度*/
                border-color: #82d2d6;
        }
</style>

可写成:

<style type="text/css">
        p{
                border: solid 10px #82d2d6;
        }
</style>

4.border-top/right/bottom/left属性:为上下左右边框设置样式、宽度、颜色

top:

border-top-style 

border-top-color

border-top-width

left:

border-left-style 

border-left-color

border-left-width

right:

border-right-style 

border-right-color

border-right-width

bottom:

border-bottomp-style 

border-bottom-color

border-bottom-width

 例子:分别设置每条边框设置样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>单独设置边框样式</title>
		<style type="text/css">
			p{
				width: 500px;
				border-top-style: dotted; /*虚线*/
				border-right-style: solid;  /*实线*/
				border-bottom-style: dotted;
				border-left-style: solid;
			}
		</style>
	</head>
	<body>
		<p>北国风光,千里冰封,万里雪飘</p>
	</body>
</html>

 

p{

        border-top-style: dotted;

        border-right-style: solid;

        border-bottom-style: dotted;

        border-left-style: solid;

}

以上也可简写成如下格式:

p{

        border-style:dotted solid dotted solid;  (上 右 下 左)

}

此外还有:

p{

        border-style:dotted solid;  (上下  左右)

}

p{

        border-style:dotted solid double;  (上  左右 下)

}

例子:分别设置每条边样式,颜色,宽度

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>单独设置边框样式</title>
		<style type="text/css">
			p{
				width: 500px;
				border-top: dotted red 2px; /*虚线*/
				border-right: solid blue 5px;  /*实线*/
				border-bottom: dotted green 5px;  /*虚线*/
				border-left: solid black 10px;  /*实线*/
			}
		</style>
	</head>
	<body>
		<p>北国风光,千里冰封,万里雪飘。北国风光,千里冰封,万里雪飘。北国风光,千里冰封,万里雪飘。北国风光,千里冰封,万里雪飘。北国风光,千里冰封,万里雪飘。北国风光,千里冰封,万里雪飘。</p>
	</body>
</html>

 

5.padding-left/top/right/bottom:上下左右内边距

语法:

padding-left:length|length|%|inherit; 

说明
length规定以具体单位计的固定的左内边距值,比如像素、厘米等。默认值是 0px。
%定义基于父元素宽度的百分比左内边距。此值不会如预期的那样工作于所有的浏览器中。
inherit规定应该从父元素继承左内边距。

例子: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			P{
				border-left:10px  solid red;
				padding-left: 60px;  /*左内边距*/
				background-color: lightgrey;
				font-size: 35px;
			}
		</style>
	</head>
	<body>
		<h1>《赠梦得》--白居易 </h1>
		<p>一愿世清平,</p>
		<p>二愿身强健 。</p>
		<p>三愿临老头,</p>
		<p>数与君相见 。</p>
	</body>
</html>

 

 

6.圆角边框border-radius 

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			div
			{
				text-align:center;
				border:2px solid #a1a1a1;
				padding:10px 40px;
				background:#dddddd;
				width:350px;
				border-radius:33px;
			}
		</style>
	</head>
	<body>
		<div>border-radius 属性允许向元素添加圆角。</div>
	</body>
</html>

border-top-right-radius 属性定义右上角边框的形状

border-top-left-radius 属性定义左上角边框的形状

border-bottom-left-radius 属性定义左下角边框的形状

border-bottom-right-radius 属性定义右下角边框的形状

例子:border-top-left-radius

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>圆角边框</title>
		<style type="text/css">
			p{
				width: 300px;
				border:2px solid red;
				border-top-left-radius: 15px 15px;
			}
		</style>
	</head>
	<body>
		<p>愿君长似少年时,愿君不忘乐相知。</p>
	</body>
</html>

 border-top-left-radius: 15px 15px;意为如下图:

 

两个值一样,写一个就可以了:border-top-left-radius: 15px ;

值相同如下语法:border-radius: 15px;

值不同要加/  :border-radius: 30px/15px;

 

7.图像边框border-image

border-image属性使用图片作为对象的边界

语法:

border-image:border-image-source|border-image-slice|border-image-width|border-image-outset|border-image-repeat;

说明
border-image-source图片的路径。
border-image-slice图片边框向内偏移。
border-image-width图片边框的宽度。
border-image-outset边框图像区域超出边框的量。
border-image-repeat图像边框是否应平铺(repeated)、铺满(rounded)或拉伸(stretched)

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>图像边框</title>
		<style type="text/css">
			p{
				border:30px solid transparent;  /*transparent表示背景透明*/
				padding: 15px;  /*内边距*/
				border-image-source: url(tu9.jpg); /*图像地址*/
				border-image-slice: 96;  /*九宫格样式的图像素为288,像素除以3得此值。只有此像素值不用加px。*/
				border-image-repeat:round;  /*类似repeat值(重复平铺图像来填充区域)。如果无法完整平铺所有图像,则对图像进行缩放以适应区域。*/
			}
		</style>
	</head>
	<body>
		<p>愿君长似少年时,愿君不忘乐相知。</p>
	</body>
</html>

图9样式:

 如果没有border-image-repeat: round;这句话,效果如下:被拉伸

 

加上border-image-width:10px; /*边框宽度*/

8.轮廓outline

outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

注:轮廓不属于元素尺寸的一部分,不影响原有布局页面。轮廓线不会占据空间,也不一定是矩形。

语法:

outline:outline-color|outline-style|outline-width|inherit;

描述
outline-color规定边框的颜色。
outline-style规定边框的样式。
outline-width规定边框的宽度。
inherit规定应该从父元素继承 outline 属性的设置。

同样,outline-color/style/width也可以简写在一起 

例子:outline和border

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			img {
				margin: 30px;
				border: 20px solid lightblue; 
				border-top-left-radius:5px 30px; 
				border-top-right-radius: 30px 60px; 
				border-bottom-left-radius: 80px 40px; 
				border-bottom-right-radius: 60px 100px;
				outline: 20px solid pink; 
			}
		</style>
	</head>
	<body>
		<img src="tu1.jpg"  alt="图"/>
	</body>
</html>




 

 outline-offset:轮廓与边框边缘的距离

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>元素轮廓</title>
		<style type="text/css">
			P{
				width: 10em;
				margin: 100px auto; /*margin设置auto有居中效果*/
				padding: 20px;
				border: 5px solid lightblue;
				outline: 10px solid pink;
				outline-offset: 20px;    /*轮廓到边框有20像素的距离*/ 
			}
		</style>
	</head>
	<body>
		<p>世界这么大还是遇见你</p>
	</body>
</html>

9.box-shadow阴影

box-shadow 属性向框添加一个或多个阴影,多个阴影的话拿逗号隔开。

语法:

box-shadow: h-shadow v-shadow blur spread color inset;

描述
h-shadow必需。阴影的水平偏移量,正数代表向右偏移,负数代表向左偏移。
v-shadow必需。阴影的垂直偏移量,正数代表向下偏移,负数代表向上偏移。
blur可选。模糊距离。值越大边界越模糊。
spread可选。阴影的尺寸。
color可选。阴影的颜色。
inset可选。将外部阴影 (outset) 改为内部阴

例子:

<!DOCTYPE html>
<html>
<head>
    <style>
        div
        {
            width:333px;
            height:333px;
            background-color:#33b084;
            box-shadow: 10px 10px 5px #888888;
        }
    </style>
</head>
<body>
   <div></div>
</body>
</html>

 例子:box-shadow: -10px 10px 8px 8px lightblue;

<!DOCTYPE html>
<html>
<head>
    <style>
        div
        {
            width:333px;
            height:333px;
            background-color:#ffffff;
			margin:30px;
            box-shadow: -10px 10px 8px 8px lightblue;
        }
    </style>
</head>
<body>
   <div></div>
</body>
</html>

 例子:box-shadow: -10px 10px 8px 8px lightblue inset;

<!DOCTYPE html>
<html>
<head>
    <style>
        div
        {
            width:333px;
            height:333px;
            background-color:#ffffff;
			margin:30px;
			box-shadow: -10px 10px 8px 8px lightblue inset;
        }
    </style>
</head>
<body>
   <div></div>
</body>
</html>

 例子:box-shadow: 10px 10px 8px 8px lightblue,10px 10px 8px 8px pink inset;

<!DOCTYPE html>
<html>
<head>
    <style>
        div
        {
            width:333px;
            height:333px;
            background-color:#ffffff;
			margin:30px;
			box-shadow: 10px 10px 8px 8px lightblue,10px 10px 8px 8px pink inset;
        }
    </style>
</head>
<body>
   <div></div>
</body>
</html>

 例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>为元素添加阴影</title>
		<style type="text/css">
			img{
				width:200px ;
				height: 200px;
				margin: 100px;
				box-shadow: 0 0 0 20px #9dbff0,
				            0 0 0 40px #e6d260,
							0 0 0 60px #a7d1b6,
							0 0 0 80px #c6a3db;
			}
		</style>
	</head>
	<body>
		<img src="tu3.jpg" alt="猪猪" />
	</body>
</html>

 

 

二、内边距padding

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

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>内边距演示</title>
		<style type="text/css">
			p{
				border: 2px solid red;
				background: lightblue;
				background-clip: content-box;
				padding-top: 50px;
				padding-left: 20%;
				padding-right: 20em;
				padding-bottom: 20%;
			}
		</style>
	</head>
	<body>
		<p>天行健,君子以自强不息。</p>
	</body>
</html>

 

padding-top: 50px;
padding-left: 20%;
padding-right: 20em;
padding-bottom: 20%;

可简写如下:

padding: 50px 20em 20% 20%;

上  右  下  左

 

三、外边距margin

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

例子:图像外边距 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>外边距演示</title>
		<style type="text/css">
			img{
				border: 2px solid red;
				margin: 120px; /*外边距*/
			}
		</style>
	</head>
	<body>
		<img src="tu西瓜.jpg"  alt="xigua"/>
		<img src="tu西瓜.jpg"  alt="xigua"/>
		<img src="tu西瓜.jpg"  alt="xigua"/>
		<img src="tu西瓜.jpg"  alt="xigua"/>
		<img src="tu西瓜.jpg"  alt="xigua"/>
		<img src="tu西瓜.jpg"  alt="xigua"/>
	</body>
</html>

 margin塌陷:如果上下设置两个方块,分别设置margin-bottom: 100px; margin-top: 100px;那两者之间并非距离200px,而是距离100px,如果两者设置的外边距不一样,以大的为距离。

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>塌陷</title>
		<style type="text/css">
			div.box1{
				width: 200px;
				height: 200px;
				background: pink;
				margin-bottom: 100px;
			}
			div.box2{
				width: 200px;
				height: 200px;
				background: lightblue;
				margin-top: 100px;
			}
		</style>
	</head>
	<body>
		<div class="box1"></div>
		<div class="box2"></div>
	</body>
</html>

margin设置为auto可以实现其水平居中的效果,但前提是设置好宽度。

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>外边距设置auto</title>
		<style type="text/css">
			P{
				border: 2px solid lightblue;
				padding: 10px;
				margin: auto;  /*居中*/
				width: 12em;	
			}
		</style>
	</head>
	<body>
		<p>天行健,君子以自强不息。</p>
	</body>
</html>

 

 

四、尺寸

1.box-sizing属性:设置元素尺寸

语法:

box-sizing: content-box|border-box|inherit;

说明
content-box默认值。如果你设置一个元素的宽为 100px,那么这个元素的内容区会有 100px 宽,不算上边框宽度和内边距。
border-box

width(宽度)+padding(内边距)+border(边框)=元素实际宽度;height(高度)+padding(内边距)+border(边框)=元素实际高度。注:border-box不包含margin。

inherit指定 box-sizing 属性的值,应该从父元素继承
 

例子:border-box和content-box

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"> 
		<title></title>
		<style> 
			#example1 {
				box-sizing: content-box;  /*只是元素高100宽300*/
				width: 300px;
				height: 100px;
				padding: 30px;  
				border: 10px solid lightblue;
			}

			#example2 {
				box-sizing: border-box; /*元素+内边距+边框宽度一共的高100宽300*/
				width: 300px;
				height: 100px;
				padding: 30px;  
				border: 10px solid pink;
			}
		</style>
	</head>
	<body>
		<h2>box-sizing: content-box (默认):</h2>
		<p>高度和宽度只应用于元素的内容:</p>
		<div id="example1">这个 div 的宽度为 300px。但完整宽度为 300px + 20px (左边框和右边框) + 60px (左边距和右边距) = 380px!</div>

		<h2>box-sizing: border-box:</h2>
		<p>高度和宽度应用于元素的所有部分: 内容、内边距和边框:</p>
		<div id="example2">不管如何这里的完整宽度为300px!</div>

	</body>
</html>

 

例子:border-box

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>设置元素尺寸</title>
		<style type="text/css">
			img{
				width: 100px;
				height: 100px;
				padding: 10px;
				border: 10px double lightblue;
				box-sizing: border-box;   /*设置图片尺寸是100*100.*/
			}
		</style>
	</head>
	<body>
		<img src="tu3.jpg" alt="猪猪" />
	</body>
</html>

 

2.设置元素最大值和最小值

min-height 属性设置元素的最小高度。该属性值会对元素的高度设置一个最低限制。因此,元素可以比指定值高,但不能比其矮。不允许指定负值。min-height属性不包括填充,边框,或页边距。

min-width 属性设置元素的最小宽度。该属性值会对元素的宽度设置一个最低限制。因此,元素可以比指定值高,但不能比其矮。不允许指定负值。min-width属性不包括填充,边框,或页边距。

max-height 属性设置元素的最大高度。该属性值会对元素的高度设置一个最高限制。因此,元素可以比指定值矮,但不能比其高。不允许指定负值。max-width属性不包括填充,边框,或页边距。

max-width 定义元素的最大宽度。该属性值会对元素的宽度设置一个最高限制。因此,元素可以比指定值窄,但不能比其宽。不允许指定负值。max-width属性不包括填充,边框,或页边距。

例子:max-height

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        p
        {
            max-height:66px;
            background-color:lightblue;
        }
    </style>
</head>
<body>
   <p>这一段的最大高度设置为66 px。Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut distinctio incidunt libero nam quis recusandae velit. A aliquid, blanditiis consectetur enim fugit incidunt inventore iure labore odio possimus saepe vero. Lorem ipsum dolor sit amet, consectetur adipisicing elit. At, consequatur culpa dolores ducimus eum hic incidunt magni officia ratione velit? Dolor fuga maiores nam quasi quis sunt! Dicta, nisi, odit!</p>
</body>
</html>

 

3.块级元素尺寸

浏览器中块级元素都是默认顶到浏览器最后面,有的时候一句很短的话要占据一行。使用width可规定语句占据的宽度。

但是如果使用width,当浏览器足够大时看不出来,但当浏览器不断缩小时,会发现出现缺失语句的现象,所以可以使用max-width,就不会缺失语句了。

例子:width和max-width区别

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			p.first{
				width: 600px;/*缩小页面后会缺失语句*/
				margin: auto;
				border: 3px solid lightblue;
			}
			p.second{
				max-width: 600px;  /*缩小页面后不会缺失语句*/
				margin: auto;
				border: 3px solid pink;
			}
		</style>
	</head>
	<body>
		<p class="first">天行健,君子以自强不息。天行健,君子以自强不息。天行健,君子以自强不息。天行健,君子以自强不息。</p>
		<p class="second">地势坤,君子以厚德载物。地势坤,君子以厚德载物。地势坤,君子以厚德载物。地势坤,君子以厚德载物</p>
	</body>
</html>

浏览器足够大: 

浏览器缩小: 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值