CSS——6.显示与隐藏、cursor、文本框聚焦、垂直对齐、文字溢出、推拉门设计、重复边框、css三角形

目录

元素的显示与隐藏

display显示

visibility可见性

overflow溢出

鼠标移动图片变灰的效果

CSS用户界面样式 

鼠标样式cursor

轮廓线outline

防止拖拽文本域resize

vertical-align垂直对齐

图片、表单和文字对齐

去除图片底侧空白缝隙

溢出的文字省略号显示

white-space

text-overflow文字溢出 

步骤

推拉门设计

基础语法

思路

margin拓展

1.解决相邻边框重复问题

2.鼠标经过凸显边框效果

css拓展

css模拟三角形

给盒子加三角 


元素的显示与隐藏

display显示

display:none;隐藏对象

display:block;除了转换为块级元素之外,同时还有显示元素的意思。

特点:隐藏之后,不占位置

8b9edf646f584c2faba36f33fd4ec92f.png9e635f64acca4c1a9c30c4c1ef58514c.png

<style>
    .div1 {
		/*隐藏元素div1*/
		display: none;
		width: 200px;
		height: 200px;
		background-color: orange;
	}
	.div2 {
		width: 200px;
		height: 200px;
		background-color: purple;
	}
</style>

visibility可见性

visibility:visible;对象可视

visibility:hidden;对象隐藏

特点:隐藏之后,保留原有的位置

07b1a3c906bf4a24a1ff8e8f0963b916.png

overflow溢出

属性值描述
visible不剪切内容也不添加滚动条
hidden不显示超过对象尺寸的内容,超出的部分隐藏起来
scroll不管有没有超出内容,总是显示滚动条,缺点:丑,不常用
auto超出自动显示滚动条,不超出不显示滚动条

2d82783b18d84adb8e4ce9da9c880a62.pnga68afa40d49a4f239aa6883a35282de7.png

943d60a58acd4dc09892e226d4f9fa7a.png ea7b783a3c024754a76494104f09813c.png

 ​​​76cae5aaebec43b296e1d927ce089a55.png

鼠标移动图片变灰的效果

2f99a959d6d241299474bb9d87cc9b21.png

8a9bb3dc7e97424fbc95a921962a2fa4.png


CSS用户界面样式 

鼠标样式cursor

属性值描述
default小白 默认
pointer小手
move移动
text文本
not-allowed禁止
<body>
	<ul>
		<li style="cursor: default;">默认小白</li>
		<li style="cursor: pointer;">小手</li>
		<li style="cursor: move;">移动</li>
		<li style="cursor: text;">文本</li>
		<li style="cursor: not-allowed;">禁止</li>
	</ul>
</body>

轮廓线outline

文本框聚焦的效果

outline:outline-color || outline-style || outline-width

用的不多,基本上都是先去掉。

<input type="text" style="outline: 0;"/> // 0或者none都可以

防止拖拽文本域resize

<textarea style="resize:none;"></textarea>


vertical-align垂直对齐

c9afc39047c447ffa1bd5aedfaf64a3c.jpeg

  • 块级元素居中对齐 margin:0 auto;
  • 文字居中对齐 text-align:center;

图片、表单和文字对齐

vertical-align垂直对齐只针对于行内元素或者行内块元素

vertical-align:baseline | top | middle | bottom

注意:

vertical-align不影响块级元素中的内容对齐,它只针对于行内元素或者行内块元素,特别是行内块元素,通常用来控制图片/表单与文字的对齐。

去除图片底侧空白缝隙

7244991e11344af5992d6eb74e42c003.png

09eaf6e86b484d3b894b612dc1f65eaa.png

默认基线对齐

解决方法:

  1. 给img 添加vertical-align:middle | top等,让图片不要和基线对齐。
  2. 给img 添加display:block 转换为块级元素。

溢出的文字省略号显示

white-space

设置或检索对象内文本显示方式。通常用于强制一行显示内容

white-space:normal;默认处理方式,自动换行

white-space:nowrap;强制在一行显示所有文本,直到文本结束或者遇到br标签才换行。

e72d6df85eb64c47a0601ccb48fe7f78.png

text-overflow文字溢出 

设置或检索是否使用一个省略标记(...)表示对象内文本的溢出

text-overflow:clip;不显示省略标记(...),而是简单的裁切

text-overflow:ellipsis;当对象内文本溢出时显示省略标记(...)

注意:一定要先强制一行内显示,再和overflow属性搭配使用。

步骤

  1. 强制一行内显示文本
  2. 把超出的部分隐藏
  3. 用省略号代替超出的部分

3a4f22f4f2454e89ae7b6168e48c14f8.png

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div {
			width: 150px;
			height: 25px;
			border: 1px solid red;
			/*当文字显示不开的时候,自动换行*/
			/*white-space: normal;*/
			/*1.要文字强制一行内显示,除非遇到br*/
			white-space: nowrap;
			/*2.溢出隐藏*/
			overflow: hidden;
			/*3.文字溢出用省略号代替超出的部分*/
			text-overflow: ellipsis;
		}
	</style>
</head>
<body>
	<div>
		我要瘦到100斤,然后我就去吃火锅!
	</div>
</body>
</html>

推拉门设计

基础语法

<a>
    <span></span>
</a>

思路

  1. a设置背景左侧,padding撑开合适的宽度。
  2. span设置背景右侧,padding撑开合适宽度 剩下由文字继续撑开宽度。
  3. a包含span是因为整个导航都是可以点击的。
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		/*1.a是设置左侧背景(左门)*/
		a {
			/*背景的大小和文字多少有关,所以需要文字撑开盒子,要用到行内块*/
			display: inline-block;
			height: 33px;
			background: url(image/to.png) no-repeat;
			color: #fff;
			text-decoration: none;
			padding-left: 15px;
			margin: 15px;
		}
		/*2.span是设置右侧背景(右门)*/
		a span {
			display: inline-block;
			height: 33px;
			background: url(image/to.png) no-repeat right top;
			padding-right: 15px;
		}
	</style>
</head>
<body>
	<a href="#">
		<span>首页</span>
	</a>
	<a href="#">
		<span>我要吃火锅</span>
	</a>
</body>
</html>

margin拓展

1.解决相邻边框重复问题

解决方法:让margin值取负数,往左走一个边框的宽度

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div {
			/*浮动的盒子是紧贴在一起的*/
			float: left;
			width: 100px;
			height: 300px;
			border: 1px solid #ccc;
			margin-left: -1px;
			margin-top: -1px;
		}
	</style>
</head>
<body>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
</body>
</html>

2.鼠标经过凸显边框效果

会出现下面的效果:

第一种写法:给当前要突出边框的盒子加上相对定位

(注:这里其实可以把1个div看成两个,1:正常的div(父盒子),2:鼠标悬浮时的div(子盒子))

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div {
			/*浮动的盒子是紧贴在一起的*/
			float: left;
			width: 100px;
			height: 300px;
			border: 1px solid #ccc;
			margin-left: -1px;
			margin-top: -1px;
		}
		/*div也可以用hover*/
		div:hover {
			/*因为下一个盒子把上一个的边框遮挡住了*/
			/*所以如果想显示全边框,就要把这个盒子放到最上层显示*/
			/*这里其他盒子没有用到定位所以不可以用z-index来实现*/
			border: 1px solid red;
			/*保证当前的盒子是定位就会压住标准流和浮动的盒子*/
			position: relative;
		}
	</style>
</head>
<body>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
	<div></div>
</body>
</html>

第二种写法:给下面的盒子加上相对定位,提高突出盒子的层级

<style>
	div {
		position: relative;
		/*浮动的盒子是紧贴在一起的*/
		float: left;
		width: 100px;
		height: 300px;
		border: 1px solid #ccc;
		margin-left: -1px;
		margin-top: -1px;
	}
	/*div也可以用hover*/
	div:hover {
		/*因为下一个盒子把上一个的边框遮挡住了*/
		/*所以如果想显示全边框,就要把这个盒子放到最上层显示*/
		border: 1px solid red;
		/*父级是定位的盒子,所以可以通过z-index提高层级*/
		z-index: 1;
	}
</style>


css拓展

css模拟三角形

1.首先来看下把div的宽、高都设置成0,添加边框值的效果

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div {
			width: 0;
			height: 0;
			border-top: 10px solid red;
			border-right: 10px solid yellow;
			border-bottom: 10px solid purple;
			border-left: 10px solid violet;
		}
	</style>
</head>
<body>
	<div></div>
</body>
</html>

 2.接下来思考怎么样才能做出一个三角形

思路:将其它的三个三角形的颜色去掉——>四个边框的颜色都要写,写成transparent变成透明

注意:

  • 只写一个边框会不显示的!!
  • 可以用p标签写。
  • p标签写的时候加上 font-size:0;line-height:0;可以照顾兼容性的问题。
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div {
			width: 0;
			height: 0;
			border: 10px solid;
			border-color: transparent violet transparent transparent;
		}
	</style>
</head>
<body>
	<div></div>
</body>

给盒子加三角 

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div {
			position: relative;
			width: 200px;
			height: 150px;
			background-color: violet;
			margin: 100px auto;
		}
		p {
			position: absolute;
			top: -40px;
			left: 50%;
			margin-left: -20px;
			width: 0;
			height: 0;
			border-style: solid;
			border-width: 20px;
			border-color: transparent transparent blue transparent;
			font-size: 0;
			line-height: 0;
		}
	</style>
</head>
<body>
	<div>
		<p></p>
	</div>
</body>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值