CSS(十二)——CSS Display(显示)和Position(定位)

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

display属性设置一个元素应如何显示,visibility属性指定一个元素应可见还是隐藏

隐藏元素 - display:none或visibility:hidden

隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意,这两种方法会产生不同的结果。

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

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

示例:
 

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<title>操作示例</title>
	<style>
		p.a {

			border: 1px solid red;
			display:none;
		}

		p.b {
			border: 1px solid red;
			visibility: hidden;
		}

		p.c {
			border: 1px solid red;

		}
	</style>
</head>

<body>

	<p class="a">飞流直下三千尺</p>
	<p class="c">一日看尽长安花</p>
	<p class="b">疑是银河落九天</p>
	<p class="c">一日看尽长安花</p>

</body>

</html>

运行结果:

CSS Display - 块和内联元素

块元素是一个元素,占用了全部宽度,在前后都是换行符。

块元素的例子:

  • <h1>
  • <p>
  • <div>

内联元素只需要必要的宽度,不强制换行。

内联元素的例子:

  • <span>
  • <a>

如何改变一个元素显示

可以更改内联元素和块元素,反之亦然,可以使页面看起来是以一种特定的方式组合,并仍然遵循web标准。

把块元素显示为内联元素: display:inline;

把内联元素显示为块元素:display:block;

示例:
 

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<title>操作示例</title>
	<style>
		p.a {

			border: 1px solid red;

		}

		p.b {
			border: 1px solid red;

		}

		p.c {
			border: 1px solid red;
			display: inline;

		}

		span {
			display: block;
		}
	</style>
</head>

<body>

	<p class="a">飞流直下三千尺</p>
	<p class="c">一日看尽长安花</p>
	<p class="c">一日看尽长安花</p>
	<p class="b">疑是银河落九天</p>
	<span>111</span>
	<span>222</span>


</body>

</html>

运行结果:

表的collapse属性

display:collapse;

collapse:这个值实际上并不适用于 visibility 属性。它是专门为表格的某些元素(如 <tr><th><td>)在 display 属性中使用而设计的,用于完全移除表格行或单元格,同时减少布局空间。但是,需要注意的是,display: collapse; 并不是一个所有浏览器都支持的标准CSS值,它主要在某些浏览器(如Firefox)的特定上下文(如表格布局)中被实现。

CSS Position(定位)

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

position 属性的五个值:static  relative  fixed absolute sticky

元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非事先设定position属性。他们也有不同的工作方式,这取决于定位方法。

static 定位

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

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

fixed 定位

元素的位置相对于浏览器窗口是固定位置。

即使窗口是滚动的它也不会移动

Fixed 定位在 IE7 和 IE8 下需要描述 !DOCTYPE 才能支持。

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

Fixed定位的元素和其他元素重叠。

relative 定位

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

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

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

absolute 定位

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

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

absolute 定位的元素和其他元素重叠。

!!!!  如果a元素被设为相对定位,b元素被设为绝对定位,那么b元素可以相对于a元素定位,而不是相对于整个页面或者视口。这样,即使页面滚动或页面布局发生变化。b元素也会相对于a元素保持其位置

sticky 定位

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

position: sticky; 基于用户的滚动位置来定位。

粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换。

它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

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

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

重叠的元素

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

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

一个元素可以有正数或负数的堆叠顺序

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

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

所有的CSS定位属性

属性说明
bottom定义了定位元素下外边距边界与其包含块下边界之间的偏移。auto
length
%

inherit
clip剪辑一个绝对定位的元素shape
auto
inherit

cursor显示光标移动到指定的类型url
auto
crosshair
default
pointer
move
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
s-resize
w-resize
text
wait
help

left定义了定位元素左外边距边界与其包含块左边界之间的偏移。auto
length
%

inherit
overflow设置当元素的内容溢出其区域时发生的事情。auto
hidden
scroll
visible
inherit
overflow-y指定如何处理顶部/底部边缘的内容溢出元素的内容区域auto
hidden
scroll
visible
no-display
no-content

overflow-x指定如何处理右边/左边边缘的内容溢出元素的内容区域auto
hidden
scroll
visible
no-display
no-content
position指定元素的定位类型absolute
fixed
relative
static
inherit
right定义了定位元素右外边距边界与其包含块右边界之间的偏移。auto
length
%

inherit

top定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。auto
length
%

inherit
z-index设置元素的堆叠顺序number
auto
inherit
  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值