我目前正在为某个网站开发一个标题。这个头由两种不同的设计:CSS代码结构决定
浮动/水平标头:
+-------------------------------------------------------------------------+
| +--------------+ +--------------------+ |
| | LOGO | | Menu | Menu | Menu | |
| +--------------+ +--------------------+ |
+-------------------------------------------------------------------------+
居中头:
+-------------------------------------------------------------------------+
| +--------------------+ |
| | LOGO | |
| | Menu | Menu | Menu | |
| +--------------------+ |
+-------------------------------------------------------------------------+
的居中头应用,浏览器时宽度小于某个断点值。否则,水平标题。这可以通过CSS media-queries
来实现。我的问题是更好的代码组织会是怎样的header.css文件:
- 只有两个媒体查询(
font-family
,container-width: 100%
等)一起使用这两种设计的代码交叉。
伪代码:
/* Code necessary for both designs */
@media-query (width < breakpoint) {
/* upgrade code to centered header */
}
@media-query (width >= breakpoint) {
/* upgrade code to floating header */
}
- 始终使用居中头+
media-query
覆盖必要的部分:
伪代码:
/* Code necessary for centered designs */
@media-query (width >= breakpoint) {
/* Overwrite centered header code */
/* Insert floating header code */
}
我的问题是什么专业人员/缺点这两个css结构?代码重复如何。第一个总是使用media-query
来显示有用的东西。第二个需要覆盖一些中心的头文件功能。
我希望这不会被关闭,因为它太主观。我只要求利弊/利弊,不到选择什么样的设计或哪一个更好...
谢谢你的回应。我实际上正在考虑用[SASS](http://sass-lang.com)编写标题。在SASS中,我可以使用类似函数的功能在两个'media-queries'中使用类似'upgrade_to_centered()'/'upgrade_to_floating'的东西(我认为这更清晰)。最终的CSS看起来像上面的第一个例子。你还会用第二种方法吗?我只是觉得,在将'new'设置为'media-query'之前,首先重置* default *设计会有点痛苦。这不会发生两个媒体查询.. – Herickson
两个媒体查询只是额外的工作,通常是多余的。如果你做'#myDiv {color:red; } @media唯一的屏幕和(最大宽度:500px){#myDiv {color:blue; }},这与'@media唯一屏幕和(min-width:501px){#myDiv {color:red; }} @media唯一的屏幕和(最大宽度:500px){#myDiv {color:blue; }}'这是额外的不必要的标记,并且*可读性较低,这与您在外部文件中包含的内容相反。 – Santi
你说得对。我只有像'#myDiv {display:inline-block; font-size:10px; } @media(max-width:500px){#myDiv {display:block; font-size:12px; }}''''@media(min-width:501px){#myDiv {display:inline-block; font-size:10px; }} @media(max-width:500px){#myDiv {font-size:12px; (少一行,但这加起来......)。 – Herickson