【问题标题】:Are span tags only used for overwritting styles?跨度标签是否仅用于覆盖样式?
【发布时间】:2014-09-22 01:52:24
【问题描述】:

我有一个关于跨度标签的问题。我为我的 web 元素编写了带有类和 id 的样式。我正在寻找覆盖/更改已应用类样式的特定 Web 元素的格式,但此处的目的是仅更改元素的单个部分。我认为在这个位置使用 span 标签很好。

也许我错了。因为我不太会在 HTML/CSS 上工作。使用 span 标签覆盖单个元素的样式是一种好习惯,还是我必须创建复合 div 标签。每当我更改已应用类/id 样式的元素时,dreamweaver 中的窗口都会提示我。

【问题讨论】:

  • 标记span是修改纯文本
  • 在内联级上下文中使用<span>,在块级上下文中使用<div>。它们是没有特殊含义的通用容器。

标签: css


【解决方案1】:

不!标记应尽可能保持干净。孩子可能会继承 CSS 属性,因此这可能不起作用。我的建议是一起避免!important,并在每个标签的末尾添加类定义。

例如,假设你想覆盖这个:

<div id="name" class="somestyle"></div>

CSS 让这一切变得简单:

<div is="name" class="somestyle mystyle"></div>

如果需要在 id 级别进行覆盖,您可以添加自己的:

#name { ... }

确保在初始样式之后添加覆盖。浏览器从上到下读取样式。

【讨论】:

  • 所以专业的 HTML/CSS 编码人员总是避免在需要覆盖任何样式时使用 span 标签?
  • 这是推荐的做法。 HTML 用于语义和内容,CSS 用于样式。
【解决方案2】:

spandiv 是两个不同的标签,它们的行为不同。你不能总是用另一个替换一个。

span 是一个内联标签,而div 是一个块元素。使用这些完全取决于您的要求。

div 内用span 覆盖继承的样式是完全可以的

进一步阅读:P

【讨论】:

    【解决方案3】:

    我使用跨度标签进行“一次性”编辑。例如,我有一个部门要求在添加到他们页面的项目前面添加一个红色的“新”,因为这是一次性使用,我只使用了一个 span 标签。如果要在所有页面上使用它,我会以 beautifulcoder 推荐的方式或在 StyleSheet 中创建一个“子类”:

    .class1 
    {
     color:#000;
    }
    .class1 .class2
    {
     color:#333;
    }
    

    然后您可以使用 span 类在 div 部分中分配“class2”,以允许内联和可重复的样式。

    【讨论】:

      【解决方案4】:

      div 和 span 之间只有一个重要区别。

      div 是块,span 是内联元素。

      应该使用 div 来包装内容的各个部分 - 较大的部分 - 而 span 应该是用户来包装文本、图像等小东西。

      例如:

      一个 div 应该包含一个更大的块,其中包含更小的图像、文本或其他内容块

      将 div 放在 span 内是非法的。规则是,块元素不允许在行内元素中。

      【讨论】:

        【解决方案5】:

        没有 span 是内联元素,而 div 是块级元素。如果要更改具有相同类的多个元素,则可以为每个类分配 id 名称以实现此目的,尽管这可能不是一个好的做法。例如,如果您有多个类名为 foo 的元素,那么您可以分配一个唯一的 id 并为每个元素分配它。

        【讨论】:

          猜你喜欢
          • 2019-03-04
          • 2020-01-01
          • 2019-12-10
          • 1970-01-01
          • 1970-01-01
          • 2019-09-03
          • 2016-08-08
          • 2018-09-14
          • 1970-01-01
          相关资源
          最近更新 更多