我应该将该段落视为文本或文本块(理论)吗?

时间:2013-09-13 12:01:45

标签: css semantic-markup

今天我收到了一份作品,并从段落 <p></p>中看到一种奇怪的格式。

#product p { 
    float: left;
    width: 513px;
}

HTML是:
观察:
- 图像每个都有270px,永远不会更多

<div id='product'>
    <h1>Product name</h1>
    <div class='img-product'>
        <img src='http://fakeimg.pl/270x270/' />
    </div>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>           
</div>

此html / css的结果是页面左侧宽度为270像素的图像,右侧是空白区域。



我的问题是

只有理论,而不是练习(我知道如何解决这个问题,我只是想知道使用标签“p”是否仅针对文本,即它不应该用作块)。

正确的是创建一个div,例如“description”,并格式化它们(作为定位和大小),而不是应用段落格式这样的?在99%的时间里针对该段只是文本。

我从来没有看到有人像div那样格式化一个段落,或者,我看,是非常特殊的情况。因为,对我来说,段落是文本元素,仅此而已,因此,样式适用于字体,颜色,行高等。

抱歉我的英文

3 个答案:

答案 0 :(得分:3)

W3C建议书HTML 4.01 Specification说:

  

9.3.1 Paragraphs: the P element

     

P元素代表一个段落。

  

7.5.4 Grouping elements: the DIV and SPAN elements

     

DIV和SPAN元素,与id和class一起使用   属性,提供添加结构的通用机制   文档。这些元素定义内联(SPAN)或   块级(DIV),但没有其他表现的成语   内容。因此,作者可以结合使用这些元素   样式表,lang属性等,为自己定制HTML   需要和品味。

     

例如,假设我们想要生成HTML文档   基于客户信息数据库。由于HTML不包括   标识对象的元素,例如&#34;客户&#34;,&#34;电话号码&#34;,   &#34;电子邮件地址&#34;等,我们使用DIV和SPAN来实现所需   结构和表现效应。

如果您有实际段落,请使用P,但如果您要构建的某些内容不是段落,请使用DIV或{{1} }。选择使用哪个元素是语义的,应该基于内容。造型的选择是正交的,真的。您可以根据自己的喜好设计段落或部门的样式;它们都是块级元素。

你确实提出了一个有趣的观点,试图保持段落样式特定于文本,而不是文档格式,但这只有在你已经有段落在里面的更高级别划分时才有可能。如果你不这样做,那就不是一个选择。我个人喜欢结构比简单结构更简单的粉丝,所以如果我的段落足够并且不需要处于更高级别的分区,我只是将样式放在段落上,而不是将它们包裹在分裂中。

答案 1 :(得分:0)

您需要将包含图像的div浮动到左侧。 DIV是一个块级元素,除非浮动,否则不允许任何其他元素出现在它旁边。

.img-product{
    float:left;
}

答案 2 :(得分:0)

#product p { 
    float: left;
    width: 513px;
    padding:0px;
    margin:0px;
}