css H1元素的替代品?

qybjjes1  于 2024-01-09  发布在  其他
关注(0)|答案(9)|浏览(150)

我喜欢h1元素,因为它指定内容是标题样式的内容,但你不应该把像图像或div这样的东西放在h1中,那么有没有一个h1的替代品,我可以把其他标记放进去?
我现在的HTML看起来像这样:

<div class="section">
    <h1>
        <div style="float:left">header text</div>
        <div style="float:right">text</div>
        <div style="clear:both;float:none;"></div>
    </h1>
    <div>body contents</div>
</div>

字符串
我喜欢h1,因为我可以添加一个css样式到任何h1与div.section类,但我不suppoed把div在它.

gpfsuwkq

gpfsuwkq1#

你总是可以

<h1>header text <span>text</span></h1>

字符串
然后处理css,清除浮动并浮动css文件中的第二个文本。

nxowjjhe

nxowjjhe2#

你应该使用一个语义image replacement method:这使得最精细的设计(图像,颜色等..图形是你的牡蛎),以及完全语义和可访问。
否则,如上所述,你可以添加任何元素,是一个inline元素:A,SPAN,等等...在你的H1里面......但我会回避这个,如果你对语义和SEO友好感兴趣。

<style>
  h1{
    background:    url('../path/to/image/image_to_replace_header.jpg') no-repeat top left;  // Sets the BG that will replace your header
    text-indent:   -9999px;  //  Moves the test off screen
    overflow:      hidden;   //  Hides the staggered text for good
    width:         300px;    //  Sets width of block(header)
    height:        100px;    //  Sets height of block(header)
  }  
</style>

<h1>My Awesome Site</h1>

字符串
现在你的文字仍然在技术上,但你有一个漂亮的照片在它的位置。有视力,无视力,和机器人友好。

jm2pwxwz

jm2pwxwz3#

我个人更喜欢的方法是保持<h1>标签的完整性,并使用<span>标签而不是其中的div。您可以将span样式设置为display:block,然后在需要时将其视为div。这样,您的<h1>标签的语义含义被保留,而不必要的<divs>被省略。阅读divitis
如果你需要在<h1>标签中包含图片,这并不能解决你的问题。你可能不应该在img标签中添加图形样式,而是将图片作为背景应用到<h1>元素中,将样式相关的图形从标记中移到CSS文件中。

dnph8jn4

dnph8jn44#

有什么原因你不指定只是:

<div style="float:right">text</div>
<h1>header text</h1>
<!-- <div style="clear:both"></div>  only if really necessary -->

字符串
这将保持你的标记语义,仍然浮动text到右边 * 和 * 保持它在h1标签之外,它在语义上不是它的一部分。

sc4hvdpw

sc4hvdpw5#

直接回答你的问题:是的,你可以使用另一种方法。它保持了你的CSS编辑能力,以及有一个适当的H1元素:

<div class="section">

<div id="Header">
<h1 style="float:left">header text<h1>
<div style="float:right">text</div>
</div>

</h1>
<div>body contents</div>
</div>

字符串
所有重要的文本都在H1中,您仍然可以根据自己的喜好设置样式。

de90aj5v

de90aj5v6#

您可以使用html5结构元素:

<section>
    <header>
        <div>header text</div>
        <div>text</div>
    </header>
    <article>body contents</article>
</section>

字符串

wxclj1h5

wxclj1h57#

这个问题在十多年前就被提出来了,现在我们有了一个更好的方法。

原始HTML

<div class="section">
    <h1>
        <div style="float:left">header text</div>
        <div style="float:right">text</div>
        <div style="clear:both;float:none;"></div>
    </h1>
    <div>body contents</div>
</div>

字符串

2023年更新

<section>
    <figure>
        <img src="path/to/img" alt"">
        <h1>label/header/title</h1>
        <p>some text blurb</p>
    </figure>
    <div>body contents</div>
</section>

qoefvg9y

qoefvg9y8#

只需颠倒一些代码的嵌套顺序:

<div class="section">
   <div style="float:left"><h1>header text</h1></div>
   <div style="float:right"><h1>text</h1></div>
   <div style="clear:both;float:none;">body contents</div>
</div>

字符串
我不确定右边浮动的文本是否应该是h1,但你应该明白了。通常,这些问题的最佳解决方法是将块元素放在外部,并将行元素嵌套在其中。

syqv5f0l

syqv5f0l9#

标题有语义意义。想想一本杂志,他们为什么要使用标题。如果你想在标题中放置一个图像用于装饰目的,请使用背景图像。我想不出为什么你需要将图像放入H1中用于上下文目的。

相关问题