CSS边框,框模型与实例

23 篇文章 0 订阅
12 篇文章 0 订阅

边框
元素的边框 (border) 是围绕元素内容和内边距的一条或多条线。

CSS border 属性允许你规定元素边框的样式、宽度和颜色。

CSS 边框
在 HTML 中,我们使用表格来创建文本周围的边框,但是通过使用 CSS 边框属性,我们可以创建出效果出色的边框,并且可以应用于任何元素。

元素外边距内就是元素的的边框 (border)。元素的边框就是围绕元素内容和内边据的一条或多条线。

每个边框有 3 个方面:宽度、样式,以及颜色。
边框的样式
样式是边框最重要的一个方面,这不是因为样式控制着边框的显示(当然,样式确实控制着边框的显示),而是因为如果没有样式,将根本没有边框。

CSS 的 border-style 属性定义了 10 个不同的非 inherit 样式,包括 none。

1、边框倒角
属性:border-radius
该属性为简写属性,可以设置四个角的倒角半径
取值:以px为单位 或 以 % 为单位

	单角定义:
		border-top-left-radius:左上角
		border-bottom-right-radius:右下角
		border-bottom-left-radius:左下角
		border-top-right-radius:右上角

练习:
边框倒角实例:

	<!doctype html>
<html>
    <head>
        <title>标题</title>
        <meta charset="utf-8">
        <style>
			#d1{
				width:200px;
				height:200px;
				border:2px solid #000;
				/*倒角*/
				border-radius:50%;
			}
		</style>
    </head>
    <body>
		<div id="d1"></div>
	
</body>
</html>

2、边框阴影
给元素增加阴影
属性:box-shadow
取值:多属性值列表
box-shadow:h-shadow v-shadow blur spread color inset;
h-shadow:必须 阴影的水平偏移距离,取值为正,向右偏,取值为负,向左偏
v-shadow:必须 阴影的垂直偏移距离,取值为正,向下偏,取值为负,向上偏
blur:可选,模糊距离
spread:可选,阴影的扩充尺寸
color:可选,阴影的颜色
inset:可选值,将默认的外阴影改为内阴影

练习:
年框阴影实例:
 <!doctype html>
<html>
    <head>
        <title>标题</title>
        <meta charset="utf-8">
        <style>
			#d1{
				width:200px;
				height:200px;
				border:1px solid #666;
				/*阴影*/
				/*box-shadow:10px 10px #654321;*/
				/*水平偏移,垂直偏移,模糊距离,阴影颜色 :模拟元素外发光效果*/
				box-shadow:0px 0px 5px red;
			}

			input,summary{
				outline:0;
			}
		</style>
    </head>
    <body>
		<p>
			用户名:
			<input>
		</p>
		<details open="">
			<summary>摘要与细节</summary>
		</details>
		<div id="d1"></div>
	
</body>
</html>
    

3、轮廓
1、什么是轮廓
绘制于元素边框周围的一条线
2、属性
outline:width style color;
outline-width:宽度
outline-style:样式
outline-color:颜色

		常用:
			outline:0;
			outline:none;

练习:
CSS轮廓实例:

<!DOCTYPE html >
<html>
<head>
<style type="text/css">
p 
{
border:red solid thin;
outline:#00ff00 dotted thick;
}
</style>
</head>

<body>
<p><b>世间美好与你环环相扣</p>
</body>
</html>

2、框模型(重难点)
CSS 框模型概述
在这里插入图片描述
CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距、边框 和 外边距 的方式。
元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。

提示:背景应用于由内容和内边距、边框组成的区域。

内边距、边框和外边距都是可选的,默认值是零。但是,许多元素将由用户代理样式表设置外边距和内边距。可以通过将元素的 margin 和 padding 设置为零来覆盖这些浏览器样式。这可以分别进行,也可以使用通用选择器对所有元素进行设置:

* {
  margin: 0;
  padding: 0;
}

在 CSS 中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。

1、框模型
	框:盒子(box)
		页面元素皆为框
	框模型:(box-model)定义了元素处理内容,内边距,外边距,边框的一种方式

	元素的 width和height属性 指定了内容区域的宽度和高度

	元素的边框是绘制于元素外围的一条线,会扩大元素的占地尺寸

	内边距和外边距 也会增加元素的占地尺寸,但不会影响元素的内容区域

	元素的实际宽度=左右外边距+左右边框+左右内边距+width

	元素的实际高度=上下外边距+上下边框+上下内边距+height

练习:
框模型实例:

<!doctype html>
<html>
    <head>
        <title>标题</title>
        <meta charset="utf-8">
        <style>
			#d1{
				/*内容区域尺寸*/
				width:200px;
				height:200px;
				background-color:red;
				/*边框:会增加元素的占地尺寸*/
				border:2px solid black;
			}
		</style>
    </head>
    <body>
		<div id="d1"></div>
	
</body>
</html>

2、外边距
1、什么是外边距
围绕在元素边框周围的空白区域
作用:
1、控制元素与元素之间的距离
2、移动元素位置
2、属性
margin:四个方向的外边距
margin-方向:单边设置
margin-top:上外边距
margin-bottom:下外边距
margin-left:左外边距
margin-right:右外边距

		取值:
			1、px 像素
			2、%
			3、auto(自动)
			4、负值

3、取值-auto
左右方向设置为 auto 时,允许元素在其父元素中水平居中对齐,前提,必须设置该元素的宽度
4、取值-负值
移动元素,向着反方向移动
margin-left:-10px;向左移动10px
margin-top:-10px;向上移动10px
5、margin 属性的取值数量
margin:value;四个方向外边距
margin:v1 v2;上下 左右
margin:v1 v2 v3;上 左右 下
margin:v1 v2 v3 v4;上右下左
ex:
margin:0 auto;水平居中标准写法
6、页面中具备默认外边距的元素
h1,h2,h3,h4,h5,h6,p,ol,ul,pre,dl,dd
通过 CSS Reset 的方式 重写默认外边距
7、特殊效果
1、外边距合并
当两个垂直外边距相遇时,它们将形成一个外边距
合并后的外边距的高度等于两个发生合并外边距高度重的较大者
2、外边距的溢出
在某种特殊场合下,给子元素设置外边距时,效果却作用在父元素的外边距效果上了。
特殊场合:父元素不设置边框时,为父元素中的第一个子元素设置上外边距时,或为最后一个子元素设置下外边距时
解决方案:
1、为父元素添加边框
有瑕疵,父元素高度会发生改变
2、为父元素添加内边距来取代子元素外边距
有瑕疵,影响元素的尺寸
3、块级元素,行内元素,行内块元素的上下外边距
上下外边距对行内元素 无效
上下外边距对行内块元素的影响是,整行元素都会受到影响
练习:
框模型外边距实例:

<!doctype html>
<html>
    <head>
        <title>标题</title>
        <meta charset="utf-8">
        <style>
			#d1{
				width:200px;
				height:200px;
				background-color:red;
				/*上下左右外边距:10px*/
				margin:10px;
			}

			#d2{
				width:200px;
				height:200px;
				background-color:red;
			}
		</style>
    </head>
    <body>
		<div id="d1"></div>
		<div id="d2"></div>
	
</body>
</html>

3、内边距
1、什么是内边距
内容区域与边框之间的空间
会扩大元素边框所占用的区域
2、属性
padding:四个方向内边距
padding-top:
padding-bottom:
padding-right:
padding-left:
取值:
1、px
2、%
取值数量:
padding:value;四个方向内边距
padding:v1 v2;上下 左右
padding:v1 v2 v3;上 左右 下
padding:v1 v2 v3 v4;上右下左
3、特殊影响
为行内元素设置上下内边距时,只会影响元素自身,并不会影响到其他元素
4、属性-box-sizing
1、作用
指定边框,内边距,内容区域的计算模式
默认:width和height只负责定义内容区域的尺寸,border,padding额外添加到元素上的
2、属性 & 值
属性:box-sizing
取值:
1、content-box
默认值,在元素的width和height之外绘制边框和内边距
2、border-box
边框和内边距会包含在width和height之中

练习:
框模型内边距实例:

<!doctype html>
<html>
    <head>
        <title>标题</title>
        <meta charset="utf-8">
        <style>
			#d1,#d2{
				border:1px solid black;
			}
			#d3{
				border:1px solid red;
				padding:10px;
			}
			#s1{
				border:1px solid blue;
				padding:10px;
			}
			#d2{
				margin-top:10px;
			}
			
		</style>
    </head>
    <body>
		<div id="d1">
			<div id="d3">Hello</div>
		</div>

		<div id="d2">
			<span id="s1">World</span>
		</div>
	
</body>
</html>

3、背景属性
1、背景色
属性:background-color
取值:
任意合法颜色值
transparent
注意:
背景颜色会填充到元素的内容区域,内边距区域以及边框区域
2、背景图像
属性:background-image
取值:url(图像url)
ex:background-image:url(a.jpg);
3、背景平铺
属性:background-repeat
取值:
1、repeat
默认值,垂直和水平方向都平铺
2、repeat-x
横向平铺
3、repeat-y
纵向平铺
4、no-repeat
不平铺,仅显示一次
4、背景图片尺寸
属性:background-size
取值:
1、value1 value2
具体数值,value1表示背景图像的宽度,value2表示背景图像的高度
2、value1% value2%
以元素的尺寸占比决定背景图的尺寸
3、cover
覆盖
把背景图扩展至足够的大(等比缩放),直到背景图像完全覆盖到元素区域位置
4、contain
包含
将背景图像等比缩放,直到右边或下边碰到元素边缘为止
5、背景图片固定
属性:background-attachment
取值:
1、scroll
滚动,默认值
2、fixed
固定,将背景图保持在可视化区域内,不随着滚动条而发生变化
6、背景图片位置
属性:background-position
取值:
1、x y
x :背景图像水平偏移位置
取值为正,向右移动
取值为负,向左移动
y :背景图像垂直偏移位置
取值为正,向下偏移
取值为负,向上偏移
2、x% y%
3、
x:left/center/right 替代
y:top/center/bottom 替代

CSS Sprites
将若干幅小图像拼合到一副大图像中,想看具体小图像的时候,配合着背景图已经背景图像位置的方式进行移动,显示

1、根据要看的图像,创建一个元素,该元素大小要与要看的图像大小一致。
2、通过 背景图像以及背景图像位置 移动背景图到 显示的元素中
7、背景属性-简写属性
background:color url() repeat attachment position;

	注意:属性值可以省略,省略的话将采用默认值

	background:red;

练习:
CSS Sprites实例:

<!doctype html>
<html>
    <head>
        <title>标题</title>
        <meta charset="utf-8">
        <style>
			#d1,#d2{
				border:1px solid black;
			}
			#d3{
				border:1px solid red;
				padding:10px;
			}
			#s1{
				border:1px solid blue;
				padding:10px;
			}
			#d2{
				margin-top:10px;
			}
			
		</style>
    </head>
    <body>
		<div id="d1">
			<div id="d3">Hello</div>
		</div>

		<div id="d2">
			<span id="s1">World</span>
		</div>
	
</body>
</html>

<!doctype html>
<html>
    <head>
        <title>标题</title>
        <meta charset="utf-8">
        <style>
			#jinghua{
				/*1、创建元素大小*/
				width:33px;
				height:18px;
				/*2、设置背景图像,已经背景图像位置*/
				/*background-image:url(Images/iconlist_1.png);
				background-repeat:no-repeat;
				background-position:-243px -112px;*/
				background:url(Images/iconlist_1.png) no-repeat -243px -112px;
			}
		</style>
    </head>
    <body>
		<!-- 显示 精华 -->
		<div id="jinghua"></div>
	
</body>
</html>

小常提示请注意:内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边。

小常提示请注意:外边距可以是负值,而且在很多情况下都要使用负值的外边距。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值