1、CSS 布局 - display 属性
display 属性是用于控制布局的最重要的 CSS 属性。
display 属性
display 属性规定是否/如何显示元素。
每个 HTML 元素都有一个默认的 display 值,具体取决于它的元素类型。大多数元素的默认 display 值为 block 或 inline。
点击显示面板
块级元素(block element)
块级元素总是从新行开始,并占据可用的全部宽度(尽可能向左和向右伸展)。
这个 <div>
元素属于块级元素。
块级元素的一些例子:
<div>
<h1> - <h6>
<p>
<form>
<header>
<footer>
<section>
行内元素(inline element)
内联元素不从新行开始,仅占用所需的宽度。
这是段落中的行内 <span>
元素。
行内元素的一些例子:
<span>
<a>
<img>
Display: none;
display: none; 通常与 JavaScript 一起使用,以隐藏和显示元素,而无需删除和重新创建它们。如果您想知道如何实现此目标,请查看本页面上的最后一个实例。
默认情况下,
覆盖默认的 Display 值
如前所述,每个元素都有一个默认 display 值。但是,您可以覆盖它。
将行内元素更改为块元素,反之亦然,对于使页面以特定方式显示同时仍遵循 Web 标准很有用。
一个常见的例子是为实现水平菜单而生成行内的
- 元素:
-
实例
li { display: inline; }
亲自试一试
注意:设置元素的 display 属性仅会更改元素的显示方式,而不会更改元素的种类。因此,带有 display: block; 的行内元素不允许在其中包含其他块元素。下例将 元素显示为块元素:
实例
span { display: block; }
亲自试一试
下例将 元素显示为块元素:实例
a { display: block; }
亲自试一试
隐藏元素 - display:none 还是 visibility:hidden?
display:none删除
visibility:hidden隐藏
Reset重置所有
通过将 display 属性设置为 none 可以隐藏元素。该元素将被隐藏,并且页面将显示为好像该元素不在其中:实例
h1.hidden { display: none; }
亲自试一试
visibility:hidden; 也可以隐藏元素。但是,该元素仍将占用与之前相同的空间。元素将被隐藏,但仍会影响布局:
实例
h1.hidden { visibility: hidden; }
2、CSS 布局 - width 和 max-width
CSS Display
CSS 定位
使用 width、max-width 和 margin: auto;
如上一章所述,块级元素始终占用可用的全部宽度(尽可能向左和向右伸展)。设置块级元素的 width 将防止其延伸到其容器的边缘。然后,您可以将外边距设置为 auto,以将元素在其容器中水平居中。元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配:
这个
<div>
元素的宽度为 500px,外边距设置为 auto。
注意:当浏览器窗口小于元素的宽度时,上面这个<div>
会发生问题。浏览器会将水平滚动条添加到页面。在这种情况下,使用 max-width 可以改善浏览器对小窗口的处理。为了使网站在小型设备上可用,这一点很重要:
这个
<div>
元素的最大宽度为 500px,外边距设置为 auto。
提示:请将浏览器窗口的大小调整为小于 500 像素,以查看两个 div 之间的区别!这是上面两个 div 的例子:
实例
div.ex1 { width: 500px; margin: auto; border: 3px solid #73AD21; } div.ex2 { max-width: 500px; margin: auto; border: 3px solid #73AD21; }
3、CSS 布局 - position 属性
CSS max-width
CSS 溢出
position 属性规定应用于元素的定位方法的类型(static、relative、fixed、absolute 或 sticky)。position 属性
position 属性规定应用于元素的定位方法的类型。有五个不同的位置值:
static
relative
fixed
absolute
sticky
元素其实是使用 top、bottom、left 和 right 属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。根据不同的 position 值,它们的工作方式也不同。position: static;
HTML 元素默认情况下的定位方式为 static(静态)。静态定位的元素不受 top、bottom、left 和 right 属性的影响。
position: static; 的元素不会以任何特殊方式定位;它始终根据页面的正常流进行定位:
这个
元素设置了 position: static;
这是所用的 CSS:实例
div.static { position: static; border: 3px solid #73AD21; }
亲自试一试
position: relative;
position: relative; 的元素相对于其正常位置进行定位。设置相对定位的元素的 top、right、bottom 和 left 属性将导致其偏离其正常位置进行调整。不会对其余内容进行调整来适应元素留下的任何空间。
这个
<div>
元素设置了 position: relative;
这是所用的 CSS:实例
div.relative { position: relative; left: 30px; border: 3px solid #73AD21; }
亲自试一试
position: fixed;
position: fixed; 的元素是相对于视口定位的,这意味着即使滚动页面,它也始终位于同一位置。 top、right、bottom 和 left 属性用于定位此元素。固定定位的元素不会在页面中通常应放置的位置上留出空隙。
请注意页面右下角的这个固定元素。这是所用的 CSS:
实例
div.fixed { position: fixed; bottom: 0; right: 0; width: 300px; border: 3px solid #73AD21; }
亲自试一试这个
元素设置了 position: fixed;
position: absolute;
position: absolute; 的元素相对于最近的定位祖先元素进行定位(而不是相对于视口定位,如 fixed)。然而,如果绝对定位的元素没有祖先,它将使用文档主体(body),并随页面滚动一起移动。
注意:“被定位的”元素是其位置除 static 以外的任何元素。
这是一个简单的例子:
这个
<div>
元素设置了 position: relative;这个<div>
元素设置了 position: absolute;
这是所用的 CSS:实例
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;
position: sticky; 的元素根据用户的滚动位置进行定位。粘性元素根据滚动位置在相对(relative)和固定(fixed)之间切换。起先它会被相对定位,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置(比如 position:fixed)。
注意:Internet Explorer、Edge 15 以及更早的版本不支持粘性定位。 Safari 需要 -webkit- 前缀(请参见下面的实例)。您还必须至少指定 top、right、bottom 或 left 之一,以便粘性定位起作用。
在此例中,在到达其滚动位置时,sticky 元素将停留在页面顶部(top: 0)。
实例
div.sticky { position: -webkit-sticky; /* Safari */ position: sticky; top: 0; background-color: green; border: 2px solid #4CAF50; }
亲自试一试
重叠元素
在对元素进行定位时,它们可以与其他元素重叠。z-index 属性指定元素的堆栈顺序(哪个元素应放置在其他元素的前面或后面)。
元素可以设置正或负的堆叠顺序:
这是一个标题由于图像的 z-index 为 -1,所以它位于文本后面。
实例img { position: absolute; left: 0px; top: 0px; z-index: -1; }
亲自试一试
具有较高堆叠顺序的元素始终位于具有较低堆叠顺序的元素之前。注意:如果两个定位的元素重叠而未指定 z-index,则位于 HTML 代码中最后的元素将显示在顶部。
定位图像中的文本
如何在图片上放置文字:实例
W3School LogoBottom LeftTop LeftTop RightBottom RightCentered
亲自试一试:
Top Left Top Right Bottom Left Bottom Right Centered
4、CSS 布局 - 溢出CSS overflow 属性控制对太大而区域无法容纳的内容的处理方式。
CSS Overflow
overflow 属性指定在元素的内容太大而无法放入指定区域时是剪裁内容还是添加滚动条。overflow 属性可设置以下值:
visible - 默认。溢出没有被剪裁。内容在元素框外渲染
hidden - 溢出被剪裁,其余内容将不可见
scroll - 溢出被剪裁,同时添加滚动条以查看其余内容
auto - 与 scroll 类似,但仅在必要时添加滚动条
注释:overflow 属性仅适用于具有指定高度的块元素。注释:在 OS X Lion(在 Mac 上)中,滚动条默认情况下是隐藏的,并且仅在使用时显示(即使设置了 “overflow:scroll”)。
overflow: visible
默认情况下,溢出是可见的(visible),这意味着它不会被裁剪,而是在元素框外渲染:
实例div { width: 200px; height: 50px; background-color: #eee; overflow: visible; }
overflow: hidden
如果使用 hidden 值,溢出会被裁剪,其余内容被隐藏:当您希望更好地控制布局时,可以使用 overflow 属性。overflow 属性指定如果内容溢出元素框会发生什么。
实例div { overflow: hidden; }
overflow: scroll
如果将值设置为 scroll,溢出将被裁剪,并添加滚动条以便在框内滚动。请注意,这将在水平和垂直方向上添加一个滚动条(即使您不需要它):
实例div { overflow: scroll; }
overflow: auto
auto 值类似于 scroll,但是它仅在必要时添加滚动条:
实例div { overflow: auto; }
overflow-x 和 overflow-y
overflow-x 和 overflow-y 属性规定是仅水平还是垂直地(或同时)更改内容的溢出:overflow-x 指定如何处理内容的左/右边缘。
overflow-y 指定如何处理内容的上/下边缘。
实例div { overflow-x: hidden; /* 隐藏水平滚动栏 */ overflow-y: scroll; /* 添加垂直滚动栏 */ }
5、CSS 布局 - 浮动和清除
CSS 清除浮动
CSS 布局 - 浮动和清除
CSS float 属性规定元素如何浮动。CSS clear 属性规定哪些元素可以在清除的元素旁边以及在哪一侧浮动。
float 属性
float 属性用于定位和格式化内容,例如让图像向左浮动到容器中的文本那里。float 属性可以设置以下值之一:
left - 元素浮动到其容器的左侧
right - 元素浮动在其容器的右侧
none - 元素不会浮动(将显示在文本中刚出现的位置)。默认值。
inherit - 元素继承其父级的 float 值
最简单的用法是,float 属性可实现(报纸上)文字包围图片的效果。实例 - float: right;
下例指定图像应在文本中向右浮动:Pineapple
领先的 Web 技术教程 - 全部免费。在 W3School,你可以找到你所需要的所有的网站建设教程。从基础的 HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP。我们的参考手册涵盖了网站技术的方方面面。其中包括W3C标准技术:HTML、CSS、XML 。以及其他技术,诸如 JavaScript、PHP、SQL 等。
在 W3School,我们提供上千个实例。通过使用我们的在线编辑器,你可以编辑这些例子,并对代码进行实验。
实例
img { float: right; }
亲自试一试
实例 - float: left;
下例指定图像应在文本中向左浮动:Pineapple
领先的 Web 技术教程 - 全部免费。在 W3School,你可以找到你所需要的所有的网站建设教程。从基础的 HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP。我们的参考手册涵盖了网站技术的方方面面。其中包括W3C标准技术:HTML、CSS、XML 。以及其他技术,诸如 JavaScript、PHP、SQL 等。
在 W3School,我们提供上千个实例。通过使用我们的在线编辑器,你可以编辑这些例子,并对代码进行实验。
实例
img { float: left; }
亲自试一试
实例 - No float
在下例中,图像将显示在文本中刚出现的位置(float: none;):Pineapple 领先的 Web 技术教程 - 全部免费。在 W3School,你可以找到你所需要的所有的网站建设教程。从基础的 HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP。 我们的参考手册涵盖了网站技术的方方面面。其中包括W3C标准技术:HTML、CSS、XML 。以及其他技术,诸如 JavaScript、PHP、SQL 等。 在 W3School,我们提供上千个实例。通过使用我们的在线编辑器,你可以编辑这些例子,并对代码进行实验。
实例
img { float: none; }