在为元素声明一组样式时,#.之间有什么区别?在决定使用哪一种样式时起作用的语义是什么?

推荐答案

是的,它们是不同的...

#是一个id selector,用于以具有唯一id的single特定元素为目标,但是.是一个class selector,用于针对具有特定类的multiple个元素.换一种说法:

  • #foo {}将样式化用属性id="foo"声明的single元素
  • .foo {}将使用属性class="foo"设置all个元素的样式(您也可以将多个类分配给一个元素,只需用空格分隔它们,例如class="foo bar")

典型用途

一般来说,你用#来设计一些你知道只会出现一次的东西,例如,高级布局div,比如边栏、横幅区域等.

类用于样式重复的地方,例如,假设您为错误消息创建了一种特殊格式的标题,您可以创建一个仅适用于<h1 class="error">的样式h1.error {}

特异性

Select 符不同的另一个方面是它们的特殊性-id Select 符被认为比类 Select 符更具体.这意味着,当元素上的样式为conflict时,用更具体的 Select 器定义的样式将覆盖不太具体的 Select 器.例如,给定<div id="sidebar" class="box">具有覆盖.box的冲突规则的#sidebar的任何规则

了解有关CSS Select 器的更多信息

有关CSS Select 器的更多入门读物,请参见Selectutorial-它们非常强大,如果您的概念仅仅是"#用于div",那么您最好仔细阅读一下如何更有效地使用CSS.

编辑:看起来SelecTutorial可能go 了天空中的大网站,所以试试这个archive link吧.

Css相关问答推荐

如何定位此下拉框的下拉面板

我无法在css中设置填充或边距

如何使用Bootstrap将图像水平对齐,使其顶部和底部位于同一水平线上?

媒体查询在生产中没有响应:React 18 应用程序

根据现有值计算CSS变量的新值

SVG样式中的CSS类名是否是全局的?

动态覆盖 Vuetify 类

有没有办法将px单位添加到 Sass mixin 的参数数组中?

如何使用显示网格制作不同大小的列取决于元素的数量

清除 CSS 中已设置的填充属性以恢复 SVG 的默认值

在 WooCommerce 变体 Select 中转换属性文本以大写

适合剩余高度

如何制作一个居中的标题样式,其中换行符将最长的行排列在底部

我怎样才能让这个边框出现在按钮元素的上方?

如何使用 Bootstrap 3 阻止按钮保持压抑状态

如何在渲染之前获取react 组件的大小(高度/宽度)?

如何动态生成用逗号分隔的类列表?

HTML表格:保持列的宽度相同

css 中的 clearfix 类有什么作用?

你如何在 SASS 中定义属性 Select 器?