2016-05-12 36 views
3

我一直在玩得到一个HTML文档中的A4尺寸显示在这个codepen使用的代码工作完美:HTML - 什么是<page>标签在做什么?

https://codepen.io/rafaelcastrocouto/pen/LFAes

CSS

body { 
    background: rgb(204,204,204); 
} 

page { 
    background: white; 
    display: block; 
    margin: 0 auto; 
    margin-bottom: 0.5cm; 
    box-shadow: 0 0 0.5cm rgba(0,0,0,0.5); 
    } 

page[size="A4"] { 
    width: 21cm; 
    height: 29.7cm; 
} 

HTML

<page size="A4"></page> 

但是,我不确定如何或为什么在CSS中声明页面和页面大小信息允许您在HTML中使用该标记。事实上,我可以在任何地方找到任何对HTML页面标签的引用。

有人可以解释代码是如何工作在codepen?在此先感谢

+1

这不应该与CSS的'@ page'它定义了打印页的规则相混淆风格你的HTML。 – Quantastical

+1

答案很好,但应该注意的是,即使作为自定义HTML5元素,也是不正确的。自定义HTML元素*必须包含破折号(连字符)才有效。因此''永远不会有效,但是''或''都是有效的HTML5自定义元素。 – Scott

+0

只是说我想要的东西,所以我用codepen中的代码(免责声明:不是我的codepen)。 感谢您的反馈意见大家 –

回答

4

我不认为<page>是一个实际的HTML元素。

当浏览器看到这个时,它可能认为它已经老了,错过了发布浏览器时不存在的新发明。

在这种情况下,它被视为<div>,并且CSS规则仍然适用。

但是,最好坚持真正存在的元素,而不是假装他们会有一天,因为将来新创建的标签的实现可能会与预期不同。

用CSS寻找div.pagediv.page[data-size="A4"],最好写成<div class="page" data-size="A4">

+0

两个答案都很棒,但这是最合适的做法。 –

3

它不是HTML。这只是利用了以下事实:为了便于将来扩展到语言,浏览器允许未知元素用CSS和JS作为目标。

0

你可以阅读有关HTML5标签HERE

如果你想使用HTML5,你应该用<div><section>更换<page></page>。页面标记不存在!

有了它,你可以用

section { "your style" } section[size="A4"] { "your style" }