我会按照以下方式编写我的CSS:
table
{
width: 500px;
}
这将适用于所有表格。那么,如果他们更改要求,使某些表格为600px,最好的修改CSS的方法是什么?我应该给表格分类吗?
table.SizeOne
{
width: 500px;
}
table.SizeTwo
{
width: 600px;
}
还有没有更好的方法来处理这样的变化?
table
{
width: 500px;
}
这将适用于所有表格。那么,如果他们更改要求,使某些表格为600px,最好的修改CSS的方法是什么?我应该给表格分类吗?
table.SizeOne
{
width: 500px;
}
table.SizeTwo
{
width: 600px;
}
还有没有更好的方法来处理这样的变化?
你的建议需要你为所有表格添加一个类,包括现有的表格和新的宽表格;尽管您说“几个页面”,因此人们可能会认为只有几个表格。
如果您可以将500px的表格视为标准,而将600px的表格视为例外情况,则继续设置默认值可能会更有用:
table
{
width: 500px;
}
table.Wide /* or a more semantic class name */
{
width: 600px;
}
这将适用于所有表格。现在,如果他们更改要求,使一些表格为600px。
该要求不会只说“一些表格宽度为600px”,如果是这样,您需要更好的方法来引出要求。
相反,它可能是这样的:“HR 'staff directory'页面上的表格宽度将为600px。”让CSS规则具体反映这一点!
body#staff-directory table {
width:600px;
}
...或者“搜索结果表格将会是600像素宽。”
table.search-results {
width:600px;
}
id
和class
。 - Richard JP Le Guen个人而言,我喜欢使用与我所使用的内容相关的类名,例如导航或内容。如果您使用类名来指定大小,则感觉像是使用内联样式的迂回方式。一个看CSS的人可能不知道自己正在处理什么。
id
并不是那么糟糕。然后可以使用 #search-result .page-wide
以及 #search-result .column-wide
。这非常清晰和具有描述性。 - Erik Töyrä Silfverswärd您可以进一步定义类,使用 body 类(为 body 标签指定的类)或其他方式覆盖基本设置。
例如,如果您的表格总宽度设置为 100,在特定页面(具有 bodyclass 'page2'),您需要将宽度设置为 50px,则可以这样做:
table{
width: 100px;
}
.page2 table {
width :50px;
}
因此,第二个类将覆盖前一个类,仅对具有bodyclass =“page2”的页面生效,在其他任何地方,宽度将为100。
根据部分设置一个基于类名的body是一个好习惯。
我会给它们起有意义的名称,而不是SizeOne和SizeTwo这样的名称,但是这确实是最好的方法。
<body class="wide">
<!-- stuff -->
<table>...</table>
</body>
然后在你的CSS中:
table {width:500px} /* defaults for all tables regardless of class */
body.wide table {width:600px} /* overrides for specific layouts */
body.slim table {width:300px}
看起来它只是一个表格,可能浪费时间,但如果您也对图像、层等进行了不同的样式处理,您可以节省大量HTML标记。
#wrapper {width:500px;padding:20px 10px}
body.wide #wrapper {width:600px}
body.slim #wrapper {width:300px;padding:10px 5px}
table {width:500px} /* defaults for all tables regardless of class */
body.wide table {width:600px} /* overrides for specific layouts */
body.slim table {width:300px}
img {width:500px}
body.wide img {width:600px}
body.slim img {width:300px}
如果你从数据库中获取HTML并且不想每次使用时都进行调整,那么你的99% HTML内容将保持不变(非常有用),你只需要更改body类即可。
<body id="contacts">
<table>
<tr>
<td>Content</td>
</tr>
</table>
</body>
所以在你的 CSS 中应该是这样的:
table {
width: 500px;
}
#contacts table {
width: 600px;
}
我会这样写:
table
{
width: 500px;
}
并使用类似 SVN 的版本控制。你所建议的会使事情变得非常复杂。或者没有版本控制:
table
{
/*width: 500px;*/
width: 600px;
}
在我看来,添加大量的类别违背了CSS的初衷。