前端基础——css2

一、盒子模型

在这里插入图片描述
盒子的边框 (border) 、盒子内的内容和边框之间的间距 (padding) 、 盒子与盒子之间的间距(margin)

1.边框

border-top-color:red;/* 设置顶部边框颜色为红色 */
border-top-width:10px; /* 设置顶部边框粗细为 10px */
border-top-style:solid; /* 设置顶部边框的线性为实线,常用的有:solid(实线)
dashed(虚线) dotted(点线); */

以上可以简写成:border-top:10px solid red;

设置其它三个边的方法和上面一样,把上面的’top’换成*'left’就是设置左边*,换成*‘right’*就是设置右边,换成’bottom’就是设置底边。

四个边如果设置一样,可以将四个边的设置合并成一句:border:10px solid red;

2.内边距padding

/*设置四个边的边距*/
padding-top:20px;/* 设置顶部内间距 20px */
padding-left:30px;/* 设置左边内间距 30px */
padding-right:40px;/* 设置右边内间距 40px */
padding-bottom:50px; /* 设置底部内间距 50px */

以上可以简写为:padding:20px 40px 50px 30px; /* 四个值按照顺时针方向,分别设置的是 上 右 下 左 四个方向的内边距值。 */

padding后还可跟三个值、两个值、一个值,如下代码:

padding:20px 40px 50px; /* 设置顶部内边距为 20px,左右内边距为 40px,底部内边距为 50px*/
padding:20px 40px; /* 设置上下内边距为 20px,左右内边距为 40px*/ 
padding: 20px; /* 设置四边内边距为 20px */

3.外边距margin
外边距的设置方法和 padding 的设置方法相同,将padding改为margin就可以了。

margin相关技巧:

1、设置元素水平居中: margin:x auto;

2、margin 负值让元素位移及边框合并。

盒子模型示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>盒子的真实尺寸</title>
<style type="text/css">
.box01{width:50px;height:50px;background-color:gold;}
.box02{width:50px;height:50px;background-color:gold;border:50px solid #000}
.box03{width:50px;height:50px;background-color:gold;border:50px solid
#000;padding: 50px;}
</style>
</head>
<body>
<div class="box01">1</div>
<br />
<div class="box02">2</div>
<br />
<div class="box03">3</div>
</body>
</html>

网页显示效果如下:
在这里插入图片描述
综上总结:盒子的 width 和height 设置的是盒子内容的宽和高,不是盒子本身的宽和高

盒子宽度 = width + padding 左右 + border 左右
盒子高度 = height + padding 上下 + border 上下
思考题:
1.在布局中,如果我想增大内容和边框的距离,又不想改变盒子显示的尺寸,应该怎么做?
思考一下,答案我写在最后哦~

4.margin-top 塌陷

在两个盒子嵌套时候,内部的盒子设置的 margin-top 会加到外边的盒子上,导致内部的盒子 margin-top 设置失败,解决方法如下:
1、外部盒子设置一个边框
2、外部盒子设置 overflow:hidden
3、使用伪元素类:.clearfix:before{ content: '';display:table;}

二、css元素溢出

当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方
式, 设置的方法是通过 overflow 属性来设置。

overflow 的设置项:
1、visible 默认值。内容不会被修剪,会呈现在元素框之外。
2、hidden 内容会被修剪,并且其余内容是不可见的,此属性还有清除浮动、清
除margin-top 塌陷的功能。
3、scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
4、auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
5、inherit 规定应该从父元素继承 overflow 属性的值。

<style type="text/css">
			.div1{
				
				width: 100px;
				height: 100px;
				border: 1px solid red;
				
				/*元素溢出: 超出父元素的部分隐藏*/
				/*overflow:hidden;*/
				
				/*overflow: scroll;*/
				/*设置此属性,内容会被裁剪, 但是会添加滚动条,以便显示被裁剪的内容*/
				/*显示垂直滚动条*/
				/*overflow-y: scroll;*/
				/*水平滚动条*/
				/*overflow-x: scroll;*/
				
				/*自适应显示*/
				/*overflow: auto;*/
			}
			.div1>div{
				
				border: 1px solid black;
			}
		</style>
		</head>
	<body>
		
		<div class="div1">
			<div>
				学的不仅是技术更是梦想
				学的不仅是技术更是梦想
				学的不仅是技术更是梦想
				学的不仅是技术更是梦想
				学的不仅是技术更是梦想
				学的不仅是技术更是梦想
			</div>
		</div>
	</body>

三、 块元素、内联元素、内联块元素

  1. 块元素
    也可以称为行元素,布局中常用的标签如:div、p、ul、li、h1~h6、dl、dt、dd 等等都是块元素,它在布局中的行为:
    支持全部的样式、如果没有设置宽度,默认的宽度为父级宽度 100% 盒子占据一行,即便设置了宽高也会占据一行显示
  2. 内联元素
    称为行内元素,布局中常用的标签如:a、span、em、b、strong、i 等等都是内联元素,它们在布局中的行为:
    1 支持部分样式(不支持宽、高、margin 上下、padding 上下)
    2 宽高由内容决定
    3 盒子并在一行
    4 代码换行,盒子之间会产生间距
    5 子元素是内联元素,父元素可以用 text-align 属性设置子元素水平对齐方式,用line-height 属性值设置垂直对齐方式
    解决内联元素间隙的方法:
    1、去掉内联元素之间的换行
    2、将内联元素的父级设置 font-size 为 0,内联元素自身再设置font-size
<!--设置父元素的font-size为0px, 同时单独设置每一个元素的字体大小-->
		<ul style="font-size: 0px;">
			<li><a href="#" style="color: black; font-size: 24px;">首页</a></li>
			<li><a href="#" style="color: black; font-size: 24px;">公司简介</a></li>
			<li><a href="#" style="color: black; font-size: 24px;">解决方案</a></li>
			<li><a href="#" style="color: black; font-size: 24px;">公司新闻</a></li>
			<li><a href="#" style="color: black; font-size: 24px;">行业动态</a></li>
			<li><a href="#" style="color: black; font-size: 24px;">招贤纳士</a></li>
			<li><a href="#" style="color: black; font-size: 24px;">关于我们</a></li>
		</ul>

3.内联块元素
也叫行内块元素,是新增的元素类型,现有元素没有归于此类别的,img 和input 元素的行为类似这种元素,但是也归类于内联元素,我们可以用 display 属性将块元素或者内联元素转化成这种元素。它们在布局中表现的行为:
·支持全部样式
· 如果没有设置宽高,宽高由内容决定
· 盒子并在一行
· 代码换行,盒子会产生间距
·元素是内联块元素,父元素可以用 text-align 属性设置子
·元素水平对齐方式, 用 line-height 属性值设置子元素垂直对齐方式

这三种元素,可以通过 display 属性来相互转化,不过实际开发中,块元素用得比 较多,所以我们经常把内联元素转化为块元素,少量转化为内联块,而要使用内联 元素 时,直接使用内联元素,而不
用块元素转化了。
display 属性
display 属性是用来设置元素的类型及隐藏的,常用的属性有:
1、none 元素隐藏且不占位置
2、block 元素以块元素显示
3、inline 元素以内联元素显示
4、inline-block 元素以内联块元素显示

<style type="text/css">
			a{
				background: red;
				width:300px;
				height:30px;
				/*元素隐藏不显示*/
				/*display: none;*/
				/*设置为块元素*/
				/*display: block;*/
				/*设置为内联块元素*/
				display: inline-block;
			}
		</style>
	</head>
	<body>
		
		<!--内联元素a标签-->
		<a href="#">我的超链接</a>
		<a href="#">我的超链接</a>

答案是:用box-sizing:border-box;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值