HTML ,CSS样式

发表于 2021-12-1 11:43:47
首先,让我们确保我们了解 CSS 是什么以及我们为什么需要它(如果我们希望我们的网页看起来不错)。

关于 CSS
CSS(层叠样式表)用于将样式应用到 HTML 文档。这是因为 HTML 不打算提供样式。HTML 旨在提供HTML 文档的结构,并且每个 HTML 元素都有预定义的含义。CSS 用于演示。

CSS 允许您执行诸如更改颜色、字体、大小、添加边框、背景图像、定位元素、添加边距、添加阴影、创建动画等操作。

但同样重要的是,它还允许您指定如何在不同类型的媒体上呈现您的内容。例如,您可以为屏幕创建一个样式表,为音频设备创建另一个样式表,为页面打印时创建另一个样式表。这使您可以精确控制每个 HTML 元素在不同媒体上的呈现方式。

CSS 还允许您为不同大小的屏幕创建不同的样式。因此,您可以为大屏幕(例如台式机/笔记本电脑)创建一个样式表,为中型(例如平板电脑)创建一个样式表,为小型(智能手机)创建另一个样式表。

无需针对每种屏幕尺寸、设备或媒体类型重写 HTML 文档。您只需编写一次 HTML 页面,然后根据需要创建样式表。

CSS 的工作原理
CSS 样式表由一系列语句组成。有两种语句:规则集和at-rules。

甲规则集(也称为规则)由一个选择器,随后一个声明块的。

像这样:

selector {declaration block}
因此,在下面的代码示例中,<h1>元素是选择器,其余的是声明块。

h1 { color: limegreen }
声明块以左花括号 ( {)开始,以右花括号 ( ) 结束}。它包含零个或多个用分号 ( )分隔的声明;。它还可以包含空格,因此,上面的语句也可以这样写:

h1 {
        color: limegreen
        }
这可以使您的样式表更具可读性,尤其是当您有很多声明时:

h1 {
        color: limegreen;
        font-family: 'Open Sans';
        font-size: 2em;
        margin: 5px;
        ... etc
        }
您还可以包含多个选择器。如果你这样做,你必须用逗号分隔它们:

h1, h2, h3, h4, h5, h6 {
        color: limegreen
        }
上面的声明块一次设置了所有 6 级标题的颜色。这与这样做的效果相同:

h1 { color: limegreen }
h2 { color: limegreen }
h3 { color: limegreen }
h4 { color: limegreen }
h5 { color: limegreen }
h6 { color: limegreen }
不同之处在于第一个使用更少的代码,从而降低文件大小,并使您的网站更快。因此,尽可能组合选择器是个好主意。显然,您只能在每个元素的样式完全相同时执行此操作。

但是,您也可以这样做:

h1, h2, h3, h4, h5, h6 {
        font-family: 'Museo Slab';
        color: limegreen;
        }
h1 {
        color: orange;
        }
上面的样式表将导致所有六个标题大小都设置为浅绿色,并使用一种名为“Museo Slab”的字体。但是,第二个声明块会将标题级别 1 的颜色覆盖为橙色。

因此,最终结果将是:所有标题都以“Museo Slab”字体呈现,<h1>元素为橙色,所有其他标题为柠檬绿色。

类和 ID
CSS 还允许您根据元素的class或ID应用样式。您可以创建自己的类和 ID,因此这提供了极大的灵活性。您创建的每个类或 ID 都可以有自己的样式。

类允许您根据其逻辑功能(或其他目的)对事物进行分组。

ID 允许您将唯一标识附加到其他元素无法拥有的元素。这不仅在使用 CSS 时很有用,而且在使用 JavaScript 和其他脚本语言时也很有用。

#logo { margin: 9px }
.search { width: 100% }
上面的样式表为 ID 为 的元素设置了边距属性logo。ID 选择器以散列 ( #) 开头,后跟 ID 值。

它还设置已分配类的所有元素的宽度属性search。类选择器以句点 ( .) 开头,后跟类值。

类也可以使用~=符号来引用。因此,以下两个语句具有相同的效果:

div.search { width: 100% }
div[class~=search] { width: 100% }
那么如何为这些元素分配一个类或 ID?

很高兴你问。在 HTML 文档中,它看起来像这样:

<div id="logo">
        ...
</div>

<div class="search">
        ...
</div>
在本例中,我使用了<div>元素,但您可以将 ID 和类分配给任何 HTML 元素。

请注意,一个 ID 只能分配给页面上的一个元素。这就是赋予元素唯一标识的原因(这在使用 JavaScript 时非常重要)。另一方面,类可以分配给任意数量的元素。

其他选择器
CSS 支持许多可能的选择器模式。这使您能够非常详细地了解您选择将样式应用到哪些元素。

考虑以下示例:

form input { color: green }
上面的代码选择所有<input>元素的后代<form>元素。

现在让我们稍微修改一下:

form.comments input { color: green }
上面的代码选择所有属于类的元素<input>的后代<form>元素comments。

让我们增加一些复杂性:

form.comments input[type="text"] { color: green }
上面的代码选择所有<input>具有元素type属性集的text值,但仅当该元素是一个的后代<form>元件一类的comments。只有通过该测试的元素才会被设置为绿色。

如您所见,您可以获得非常具体的信息。我们甚至还没有提到伪类!

如果您有兴趣,这里是CSS3 中选择器的官方列表。

HTML 和 CSS 如何协同工作 - 向 HTML 文档添加样式
在 HTML 中,可以通过三种方式向网页添加样式。

内联样式表
使用 globalstyle属性在元素级别应用样式。这样做只会影响您应用样式的元素。
下面是一个例子:

<p style="color:blue;">Content...</p>
嵌入式样式表
使用元素在页面级别应用样式(通过将元素放置在元素内)。这允许您将样式应用于该页面上的任何元素。您不需要修改每个元素,因为它只在页面顶部完成一次。这样做只会影响声明样式的页面。 <style> <head>
例子:

<head>
        ...
        <style type="text/css">
                h1 { color:limegreen; }
                .big { font-size:200%; }
        </style>
        ...
</head>       
请注意,随着 HTML 规范的最新变化,您还可以通过使用属性在<head>元素外(即在 内<body>)使用此scoped标记。这将允许从父元素向下应用样式。

<style type="text/css" scoped>
        h1 { color:limegreen; }
        .big { font-size:200%; }
</style>


外部样式表
使用<link>元素链接到外部样式表(通过将元素放置在元素内<head>)。这允许您将样式应用于链接到样式表的任何页面上的任何元素。建议在整个网站上设置样式,因为每个页面都可以链接到相同的样式表。如果需要更新样式,只需在一个地方进行——外部样式表(而不是在每个页面中)。此方法允许您在不打开任何 HTML 文档的情况下更新整个网站的样式。
所以这段代码将放在<head>元素中:

<head>
        ...               
        <link rel="stylesheet" href="html-styles.css">
        ...
</head>       
样式表文件(在这种情况下我们称之为html-styles.css)看起来像这样:

.sweet {
colorrange;
font-size:1.5em;
}
如您所见,看不到 HTML 标记。纯粹的 CSS 代码(毕竟,它是一个 .css 文件)。

这实际上是我们在页面顶部的 HTML 编辑器中链接到的外部样式表。在实践中,您可以包含更多样式——如果您愿意,可以为页面上的每个 HTML 元素添加样式。

您还可以使用元素@import内的规则<style>或从另一个外部样式表中导入来自外部样式表的样式。

像这样:

<style type="text/css" scoped>
        @import url('html-styles.css');
</style>
虽然这种方法可能有它的用处,但它通常不是推荐的方法,主要是出于性能原因。通常最好使用该<link>方法。

帮助中心|标签云|免责声明|申请修改|世界地图|锐阔网

Copyright©GMT+8, 2024-11-7 03:29

京ICP备2021033201号

京公网安备11010502050698号

快速回复 返回顶部 返回列表