CSS总结(3)

一.CSS尺寸

CSS 尺寸 (Dimension) 属性允许你控制元素的高度和宽度。同样,它允许你增加行间距。

width属性设置元素的宽度。

height性设置元素的高度。

line-height 属性设置行高。

二.CSS Display(显示) 与 Visibility(可见性)

1.Display显示

display属性设置一个元素应如何显示。

display:none--隐藏

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS Display(显示)</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			img{
				display: none;/* 不显示图片 */
			}
		</style>
	</head>
	<body>
		<img src="img/avatar4.png" >
		<span id="">
			使用Display设置图片
		</span>
		<h3>当不显示图片时,而且该元素原本占用的空间也会从页面布局中消失。</h3>
	</body>
</html>

display:block--显示

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS Display(显示)</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			img{
				display: block;/* 显示图片 */
			}
			span{
				color: red;
			}
		</style>
	</head>
	<body>
		<img src="img/avatar3.png" ><span>使用Display设置图片</span>
		<h3>当显示图片时自动换行,使图片元素变化为块级元素</h3>
	</body>
</html>

2.Visibility可见性

visibility属性指定一个元素应可见还是隐藏。

visibility:hidden--隐藏

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Visibility(可见性)</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			img{
				visibility: hidden;/* 不显示图片 */
			}
		</style>
	</head>
	<body>
		<img src="img/avatar4.png" >
		<span>使用visibility设置图片</span>
		<h3>当不显示图片时,span元素的内容紧跟随照片,但是该元素原本占用的空间不会从页面布局中消失</h3>
	</body>
</html>

 visibility:visible--显示

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Visibility(可见性)</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			img{
				visibility: visible;/* 显示图片 */
			}
		</style>
	</head>
	<body>
		<img src="img/avatar3.png" >
		<span>使用visibility设置图片</span>
		<h3>当显示图片时,span元素的内容紧跟随照片</h3>
	</body>
</html>

3.Display和Visibility隐藏区别:

display:none可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。【注意,实例中隐藏的标题不占用空间】

visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。【注意,实例中隐藏的标题任然占用空间】

 三.CSS Position(定位)

position 属性指定了元素的定位类型。

元素可以使用的顶部 top,底部bottom,左侧left和右侧right属性定位。前提是:先设定position属性。

不同的工作方式,这取决于定位方法。

position 属性的五个值:

1.static 定位

HTML 元素的默认值,即没有定位,遵循正常的文档流对象。

静态定位的元素不会受到 top, bottom, left, right影响。

2.absolute 定位【绝对定位】

绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>。

absolute 定位使元素的位置与文档流无关,因此不占据空间。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>absolute定位</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			#div1{
				width: 400px;
				height: 400px;
				background-color: #FF0000;
				position: absolute;/* 没有定位的父元素,为body定位方式定义的。 */
				top: 30px;/* 离网页的距离为30px */
			}
			#div2{
				width: 300px;
				height: 300px;
				background-color: aqua;
				position: absolute;/* 有定位,他定位的父元素为div1,div1有定义 */
				top: 10px;/* 离网页的距离为40px */
			}
			img{
				width: 200px;
				height: 200px;
				position: absolute;/* 有定位,他定位最近的父元素为div2,div2有定义 */
				top: 30px;/* 离顶部网页的距离为70px */
				left: 30px;/* 离左侧网页的距离为30px */
			}
		</style>
	</head>
	<body>
		<div id="div1">
			<div id="div2">
				<img src="img/2048387.jpg" >
			</div>
		</div>
	</body>
</html>

 

3.relative 定位【相对定位】

相对定位元素的定位是相对其正常位置。

移动相对定位元素,但它原本所占的空间不会改变。

相对定位元素经常被用来作为绝对定位元素的容器块。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>relative定位</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			img{
				width: 200px;
				height: 200px;
				position: relative;
				top: 100px;/* 定位为离上一个块级元素100px */
				left: 20px;/* 定位为离左边span元素20px */
			}
		</style>
	</head>
	<body>
		<h3>遵循默认网页中的定位方式,相对于其他元素的位置而确定</h3>
		<span>relative定位</span>
		<img src="img/2048559.jpg" >
		<span>relative定位</span>
	</body>
</html>

4.fixed定位【固定定位】

元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会移动。

fixed定位使元素的位置与文档流无关,因此不占据空间。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>fixed定位</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			span{
				position: fixed;
				right: 30px;
				color: #FF0000;
				font-size: 30px;
			}
		</style>
	</head>
	<body>
		<h1>不遵循默认网页中的定位方式,元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会移动.</h1>
		<span>life is for fun</span>
		<div style="height: 2000px;">
			<h1>MINISO</h1>
		</div>
	</body>
</html>

 滑动滑轮红色字体不会随着页面的滚动而滚动

5.sticky 定位【粘性定位】

sticky 英文字面意思是粘,粘贴,所以可以把它称之为粘性定位。

粘性定位的元素是依赖于用户的滚动。

粘性定位表现为在跨越特定阈值前为相对定位,之后为固定定位。

 这个特定阈值指的是 top, right, bottom 或 left 之一,才可使粘性定位生效。否则其行为与相对定位相同。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>sticky定位</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			img{
				position: sticky;
				top: 0px;
				width: 300px;
				height: 100px;
				border: 10px double yellow;
				right: 30px;
				float: right;
			}
		</style>
	</head>
	<body>
		<img src="img/2048374.jpg" >
		<div style="height: 2000px;">
			<h1>MINISO</h1>
		</div>
	</body>
</html>

 当黄色边框到达距离顶部为0时(top:0px;),他不会随着页面的滚动而滚动。

四.重叠的元素 

元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素

z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)。

具有更高堆叠顺序的元素总是在较低的堆叠顺序元素的前面。

注意: 如果两个定位元素重叠,没有指定z - index,最后定位在HTML代码中的元素将被显示在最前面。

 当图片1再图片2下面时:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>元素重叠</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			#img1{
				position: absolute;
				top: 30px;
				left: 40px;
				border: 5px solid #0000FF;
				z-index: 1;
			}
			#img2{
				position: absolute;
				top: 60px;
				left: 20px;
				border: 5px solid red;
				z-index: 2;
			}
		</style>
	</head>
	<body>
		<img id="img1" src="img/avatar.png" ><br>
		<img id="img2" src="img/avatar2.png" >
	</body>
</html>

 当图片1再图片2上面时:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>元素重叠</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			#img1{
				position: absolute;
				top: 30px;
				left: 40px;
				border: 5px solid #0000FF;
				z-index: 1;
			}
			#img2{
				position: absolute;
				top: 60px;
				left: 20px;
				border: 5px solid red;
				z-index: 0;
			}
		</style>
	</head>
	<body>
		<img id="img1" src="img/avatar.png" ><br>
		<img id="img2" src="img/avatar2.png" >
	</body>
</html>

 相比只是z-index属性值变了。

五.CSS 布局 

overflow 属性可以控制内容溢出元素框时在对应的元素区间内添加滚动条。

Overflow属性
hidden内容会被修剪,并且其余内容是不可见的。
scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
visible默认值。内容不会被修剪,会呈现在元素框之外。

 注意:overflow 属性只工作于指定高度的块元素上。

1.visible元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Overflow</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			div{
				position: absolute;/* 跟随相邻定义的父元素*/
				border: 30px solid #FF0000;/* 图片把边框覆盖住了 */
				width: 150px;
				height: 150px;
				top: 30px;
				left: 30px;
				overflow:visible; /* 默认值。内容不会被修剪,会呈现在元素框之外。不写也可以 */
			}
		</style>
	</head>
	<body>
		<div>
			<img src="img/avatar2.png" >
		</div>
	</body>
</html>

 

2.scroll元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Overflow</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			div{
				border: 30px solid #FF0000;
				width: 400px;
				height: 400px;
				overflow: scroll;/* 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 */
			}
		</style>
	</head>
	<body>
		<div>
			<img src="img/2048378.jpg" >
		</div>
	</body>
</html>

 

3.hidden元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Overflow</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			div{
				border: 30px solid #FF0000;
				width: 400px;
				height: 400px;
				overflow: hidden;/* 内容会被修剪,并且其余内容是不可见的。 */
			}
		</style>
	</head>
	<body>
		<div>
			<img src="img/2048378.jpg" >
		</div>
	</body>
</html>

六.CSS Float(浮动)

元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。直到它的外边缘碰到包含框或另一个浮动框的边框为止。

浮动元素之后的元素将围绕它。

浮动元素之前的元素将不会受到影响。

 浮动的使用:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS Float(浮动)</title>
		<style type="text/css">
			body{
				margin: 0;
			}
			div{
				width: 100px;
				height: 100px;
				background-color: #00FFFF;
				font-size: 1.875rem;
				float: right;
			}
			img{
				float: left;
			}
			span{
				font-size: 30px;
			}
		</style>
	</head>
	<body>
		<h3>CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。</h3>
		<div id="">
			<b>向右靠齐</b>
		</div>
		<img src="img/avatar4.png" >
		<span>HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。 [1] 
超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。</span>
	</body>
</html>

<think>嗯,用户想用HTML和CSS通过span标签创建一个向右的箭头图标。首先,我需要回顾一下常见的CSS绘制箭头的方法,根据提供的引用内容,主要有几种方法:使用边框旋转、双三角覆盖或者利用边框宽度和transform属性来变形。 首先,用户明确提到要使用span标签,所以需要确保解决方案不需要额外的HTML元素,可能用伪元素来实现。比如,在引用[1]中,使用了伪元素:before和:after来创建箭头,通过设置边框的透明部分和实色部分来形成箭头形状。而引用[3]中的例子则是通过调整边框宽度和应用transform属性来倾斜元素,形成箭头效果。 接下来,我需要考虑哪种方法更适合用span标签实现向右的箭头。双三角覆盖可能需要更多的定位调整,而边框旋转的方法可能更简洁。例如,引用[2]中的例子使用了::after伪元素,通过旋转边框来生成箭头。这种方法可能更适合,因为只需要一个伪元素,并且通过transform属性进行旋转即可。 另外,用户需要的是向右的箭头,所以需要确定旋转的角度。通常,向右的箭头可以通过旋转45度来实现,但具体数值可能需要调整。例如,在引用[2]中,使用了matrix变换,但可能需要更直观的rotate(45deg)来实现同样的效果。 同时,还要注意箭头的大小和颜色。可以通过调整伪元素的尺寸和边框宽度来控制箭头的大小,而颜色则由边框颜色决定。确保span标签本身有足够的空间显示箭头,可能需要设置display为inline-block,并指定宽度和高度。 还需要考虑兼容性和简洁性。使用标准的CSS属性和简单的transform可能更可靠。比如,设置伪元素的边框,然后将整个元素旋转45度,形成箭头形状。或者,像引用[3]那样,通过设置不同边的边框宽度,并应用skew变换来制作箭头。 现在需要综合这些方法,给出一个适合用span标签的解决方案。可能的步骤如下: 1. 设置span为inline-block,指定宽度和高度,以容纳箭头。 2. 使用伪元素(如::after)来创建箭头的图形。 3. 设置伪元素的边框,只保留右边框和下边框,其他边框透明或设置为无。 4. 应用transform旋转,使边框形成向右的箭头形状。 5. 调整颜色、大小和位置,确保箭头显示正确。 例如,参考引用[3]中的例子,通过设置边框宽度和skew变换,但需要调整参数以实现向右的箭头。或者,采用旋转的方式,如引用[2]中的matrix,但改用rotate更直观。 可能需要测试不同的方法,选择最简洁有效的一种。比如,使用边框旋转法,将伪元素的边框右侧和上侧设置为实色,然后旋转45度,形成向右的箭头。同时,调整伪元素的位置,使其在span中居中或适当对齐。 最后,确保代码简洁,注释清楚,用户能够轻松理解并应用。同时,生成相关问题,帮助用户深入学习相关技术。</think>### 使用 span 标签绘制向右箭头的实现方法 #### 方法一:通过边框旋转实现 ```html <span class="right-arrow"></span> <style> .right-arrow { display: inline-block; width: 30px; height: 30px; } .right-arrow::after { content: ""; display: block; width: 12px; /* 控制箭头长度 */ height: 12px; /* 控制箭头高度 */ border-top: 3px solid #333; /* 箭头颜色/粗细 */ border-right: 3px solid #333; transform: rotate(45deg); /* 关键旋转角度 */ margin-left: 5px; /* 调整箭头位置 */ } </style> ``` *原理*:通过伪元素的 `border-top` 和 `border-right` 构建直角,旋转 45 度形成箭头[^2]。 #### 方法二:通过三角覆盖实现 ```html <span class="arrow"></span> <style> .arrow { display: inline-block; position: relative; width: 20px; height: 20px; } .arrow::before { content: ""; position: absolute; border-top: 10px solid transparent; /* 透明上半部分 */ border-bottom: 10px solid transparent; border-left: 15px solid #ff0000; /* 箭头主体 */ } </style> ``` *原理*:利用 CSS 边框特性构建三角形,通过单边着色形成箭头[^1]。 #### 方法三:通过斜切变形实现 ```html <span class="skew-arrow"></span> <style> .skew-arrow { display: inline-block; width: 30px; height: 20px; position: relative; } .skew-arrow::after { content: ""; position: absolute; border: 2px solid #000; /* 边框粗细/颜色 */ border-width: 0 2px 2px 0; /* 右下边框可见 */ width: 12px; height: 12px; transform: rotate(-45deg); /* 调整箭头方向 */ } </style> ``` *原理*:通过边框可见性控制 + 负角度旋转实现箭头方向调整[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值