【CSS 08】display 控制布局 块级元素 行内元素 隐藏元素 结合JS 最大宽度 浏览器窗口 定位 position z-index 堆叠

这篇具有很好参考价值的文章主要介绍了【CSS 08】display 控制布局 块级元素 行内元素 隐藏元素 结合JS 最大宽度 浏览器窗口 定位 position z-index 堆叠。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说在前面

CSS基础教程系列已经结束,接下来就是中级教程,让我们跟上脚步,继续努力吧!
并且最近临近期末考试,后面十天休刊…


display

display 属性是用于控制布局的最重要的 CSS 属性
display 属性规定是否/如何显示元素

HTML 元素都有一个默认的 display 值
具体取决于它的元素类型
大多数元素的默认 display 值为 block 或 inline

block element 块级元素
块级元素总是从新行开始,并占据可用的全部宽度
尽可能向左和向右伸展
例如:
<div>
<h1> - <h6>
<p>
<form>
<header>
<footer>
<section>

inline element 行内元素
内联元素不从新行开始,仅占用所需的宽度
例如:
<span>
<a>
<img>

display: none; 通常同JavaScript一同使用以隐藏和显示元素,而无需删除和重新创建它们

每个元素都有一个默认display的值,但是可以覆盖
对于使页面以特定方式显示同时仍遵循 Web 标准很有用
一个常见的例子是为实现水平菜单而生成行内的 <li> 元素
li {
	display: inline;
}

设置元素的 display 属性仅会更改元素的显示方式,而不会更改元素的种类
因此带有 display: block; 的行内元素不允许在其中包含其他块元素

隐藏元素 - display:none 还是 visibility:hidden

通过将 display 属性设置为 none 可以隐藏元素
该元素将被隐藏,并且页面将显示为好像该元素不在其中

visibility:hidden; 也可以隐藏元素
但是该元素仍将占用与之前相同的空间
元素将被隐藏,但仍会影响布局

利用CSS和JavaScript实现单击显示元素

<!DOCTYPE html>
<html>
<head>
<style>
#panel, .flip {
	font-size: 16px;
	padding: 10px;
	background-color: #4CAF50;
	color: white;
	border: solid 1px hotpink;
	margin: auto;
}

#panel {
	display: none;
}
</style>
</head>

<body>

<p class="flip" onclick="myFunction()">点击显示面板</p>

<div id="panel">
 <p>面板包括一个div元素,默认情况下元素隐藏 display:none; </p>
 <p>其使用CSS进行样式的设置,使用JS来显示 display:block; </p>
 <p>工作原理是带有class="flip"的p元素拥有onclick属性,当用户点击p元素(块级元素)时,将会执行名为 myFunction()的函数,该函数将id="panel"的div样式从 display: none 改为 display: block</p>
 </div>

<script>
function myFunction() {
	document.getElementById("panel").style.display = "block";
}
</script>
</body>
</html>

max-width

使用 width、max-width 和 margin: auto
像前面所述,块级元素始终占用可用的全部宽度(尽可能向左和向右伸展)
设置块级元素的 width 将防止其延伸到其容器的边缘
然后可以将外边距设置为 auto 以将元素在其容器中水平居中
元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配

当浏览器窗口小于元素的宽度时,上面这个 <div> 会发生问题
浏览器会将水平滚动条添加到页面

在这种情况下,使用 max-width 可以改善浏览器对小窗口的处理
为了使网站在小型设备上可用,这一点很重要

ex1的宽度是固定的,不会随着浏览器窗口变化而变化,而是部分长度被覆盖
div.ex1 {
	width: 500px;
	margin: auto;
	border: 3px solid #73AD21;
}

ex2的宽度最大是500px,并且会随着窗口缩小而缩小
div.ex2 {
	max-width: 500px;
	margin: auto;
	border: 3px solid #73AD21;
}

position

position 属性规定应用于元素的定位方法的类型
static、relative、fixed、absolute 或 sticky

元素其实是使用 top、bottom、left 和 right 属性定位的
但是除非首先设置了 position 属性,否则这些属性将不起作用
根据不同的 position 值,它们的工作方式也不同

/* position: static;
HTML 元素默认情况下的定位方式为 static(静态)
静态定位的元素不受 top、bottom、left 和 right 属性的影响
position: static 的元素不会以任何特殊方式定位
始终根据页面的正常流进行定位
*/

div.static {
  position: static;
  border: 3px solid #73AD21;
}
/*
position: relative; 的元素相对于其正常位置进行定位
设置相对定位的元素的 top、right、bottom 和 left 属性将导致其偏离其正常位置进行调整
不会对其余内容进行调整来适应元素留下的任何空间
*/

div.relative {
	position: relative;
	left: 30px;
	border: 3px solid #73AD21;
}

/*
position: fixed; 的元素是相对于视口定位的,这意味着即使滚动页面也始终位于同一位置
top、right、bottom 和 left 属性用于定位此元素
固定定位的元素不会在页面中通常应放置的位置上留出空隙
*/

div.fixed {
	position: fixed;
	bottom: 0;
	right: 0;
	width: 300px;
	border: 3px solid #73AD21;
}

/*
position: absolute; 的元素相对于最近的定位祖先元素进行定位(而不是相对于视口定位,如 fixed)
然而,如果绝对定位的元素没有祖先,将使用文档主体(body),并随页面滚动一起移动
“被定位的”元素是其位置除 static 以外的任何元素
*/

div.relative {
	position: relative;
	width: 400px;
	height: 200px;
	border: 3px solid #73AD21;
}

div.absolute {
	position: absolute;
	top: 80px;
	right: 0;
	width: 200px;
	height: 100px;
	border: 3px solid #73AD21;
}

/*
position: sticky; 的元素根据用户的滚动位置进行定位
粘性元素根据滚动位置在相对(relative)和固定(fixed)之间切换。起先它会被相对定位,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置(比如 position:fixed)
Safari 需要 -webkit- 前缀,举例如下:
*/

div.sticky {
	position: -webkit-sticky; /* Safari的适配 加上为好 不影响其他浏览器的使用*/
	position: sticky;
	top: 0;
	background-color: green;
	border: 2px solid #4CAF50;
}

/*
重叠元素
在对元素进行定位时可以与其他元素重叠
z-index 属性指定元素的堆栈顺序(哪个元素应放置在其他元素的前面或后面)
元素可以设置正或负的堆叠顺序
*/
img {
	position: absolute;
	left: 0px;
	top: 0px;
	z-index: -1;
}

/*
具有较高堆叠顺序的元素始终位于具有较低堆叠顺序的元素之前
如果两个定位的元素重叠而未指定 z-index,则位于 HTML 代码中最后的元素将显示在顶部
*/
定位图像文本
<!DOCTYPE html>
<html>
<head>
<style>
.container {
	position: relative;
}

.topleft {
	position: absolute;
	top: 8px;
	left: 16px;
	font-size: 18px;
}

img {
	width: 100%;
	height: auto;
	opacity: 0.3;
}

</style>
</head>

<body>
<div class="container">
	<img src="/i/logo/w3logo-2.png" alt="W3School" width="800" height="450">
	<div class="topleft">Top Left</div>
	<!-- 两个定位的元素重叠而未指定z-index时,html代码中后面的元素显示在上面 -->
</div>

</body>
</html>

参考更高级的更详细的定位技巧文章来源地址https://www.toymoban.com/news/detail-476030.html

到了这里,关于【CSS 08】display 控制布局 块级元素 行内元素 隐藏元素 结合JS 最大宽度 浏览器窗口 定位 position z-index 堆叠的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS中如何隐藏元素但保留其占位空间(display:none vs visibility:hidden)?

    前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一

    2024年02月11日
    浏览(38)
  • html5中 块级元素与内联元素的解释和设置 display

    a{display:block;} div{      display:inline;  } 1、每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为“block”,成为“块级”元素(block-level);而span元素的默认display属性值为“inline”,称为“行内”元素。 2、块级元素:占据一定矩形空间,可以通过设置高度、

    2024年02月08日
    浏览(52)
  • 前端小案例3:Flex弹性布局行内元素宽度自适应

    项目背景:需要在一行上展示空调设备的三个模式(制冷、制热、通风)或者两个模式(制冷、制热);因为不同产品的模式数量不同,因此需要让模式按钮的宽度自适应,有两个模式时,单个模式宽度占据50%;三模式时,宽度占据33.3%。 可以使用Grid和Flex 弹性布局实现。

    2024年02月04日
    浏览(48)
  • CSS基础:块状元素、内联元素、内联块状元素(行内元素)

    CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。 1.常用的块状元素有: 2.常用的内联元素有: 3.常用的内联块状元素有: 什么是块级元素?在html中 就是块级元素。设置display:block就是将元素显示为块级元素。如下代码

    2023年04月12日
    浏览(51)
  • css系列--块级元素靠右的实现方式

    问题描述: 实现某一行中内部元素,靠右展示 HTML 如下: 想要块级元素居右往往设置 margin-right: 0 属性是行不通的 此方案不可行!! 方法1:使用 margin 属性 方法2:使用 position 属性 方法3:使用 float 属性 方法4:使用 text-align 属性 将块设为行内元素,然后父元素使用 text-al

    2024年02月11日
    浏览(40)
  • CSS 系列 -- 块级元素靠右的实现方式

    HTML 如下: 想要块级元素居右往往设置 margin-right: 0 属性是行不通的 下面介绍五种方法,不同场景适用不同方法 使用 margin 属性 将  margin-left  设为  auto  后, 元素左边的  margin  会被尽可能的撑大, 所以自然就把元素挤到右边去了 使用 position 属性 使用 position 定位, 绝对能

    2023年04月13日
    浏览(33)
  • CSS必学:元素之间的空白与行内块的幽灵空白问题

    作者: WangMin 格言: 努力做好自己喜欢的每一件事 CSDN原创文章 博客地址 👉 WangMin 我们在开发的过程中,难免会出现一些难以预料的问题。那么其中,CSS空白现象就是非常常见的问题之一。虽然它已经被发现很久,但仍然有许多新手和经验丰富的开发者们忽略了它对页面布局

    2024年02月06日
    浏览(39)
  • 【CSS弹性盒模型 display:flex;常用参数及常见的布局】

    display:flex; 是CSS中用于创建弹性盒子布局的属性,其常见的各种参数及用法包括: flex-direction 指定主轴的方向,可以是row(水平方向)、column(垂直方向)等。 justify-content 定义在主轴上的对齐方式,可以是flex-start(靠近起点)、flex-end(靠近终点)、center(居中对齐)、s

    2024年02月13日
    浏览(43)
  • CSS中display属性的inline-block导致布局错位问题

    HTML部分代码 CSS代码 不理想的效果 发现还原不回来现场 尴尬 大概样式 发现核心问题是 inline-block 默认的对齐方式 只需要设计 当然也可以是使用浮动float 或者 弹性盒子flex 完成上述需求 QQ浏览器 Firefox浏览器 设置行内块级元素之后,细心的人就会发现盒子间有空隙 检查元素

    2024年02月15日
    浏览(45)
  • css面试题:css隐藏元素的方式

    特点:父元素设置该属性时,子元素同样会生效,但可以通过visibility:visible;修改子元素的显示效果; 特点:作用是从dom中移除节点,所以子元素也会被移除掉, 该方法通过改变元素透明度来实现隐藏,但需要注意父元素设置为opacity:0后,子元素会继承父元素该属性的效果,

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包