求助啊,css问题很简单。怎么把一段css代码弄成css id class区别那样

帐号:密码:下次自动登录{url:/nForum/slist.json?uid=guest&root=list-section}{url:/nForum/nlist.json?uid=guest&root=list-section}
贴数:15&分页:负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: 求助 一个html css 基础问题
发信站: 水木社区 (Thu Sep 24 16:09:54 2015), 站内 && 我知道这里高手如云。
下面这个,如果display:inline-block改成float:left,显示就对了。为什么? && {code}
div.panel{border:3width:45%;height:500display:inline-margin-top:0}
&div class="panel"&
&a href="#"&show&/a&
&div class="panel"&
-- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Wed Sep 30 13:59:18 2015), 站内 && 忙了好几天,用php帮朋友建了个网。做了个极难看的页面。感慨一下:php真是神器啊,简单够用的功能,哪里有错就哪里报错,象螺丝刀一样的东西,便宜,耐用,经常可以用。
-- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Wed Sep 30 14:08:01 2015), 站内 && 我们用注入,注来注去....再加上一堆delegate, thread.....基本上,出错的时候,只看栈,是什么也看不出来的。
如果不是对系统的结构比较清楚,没个两天时间,都根本搞不清那是什么错误。 && -- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Wed Sep 30 14:31:46 2015), 站内 && 再感慨一下我们用java写的东西。
因为google有人反对使用Enum,所以,我们在protobuf里避开enum
又为了性能,使用protobuf nano (也就是生成的文件小点) && 现在,据说proguard 可以优化“很多”protobuf生成的东西,我们又有人打算在protobuf里使用enum
然后,用一个叫作proto lite的东西,优化生成的代码
.....所以,我们的编译工作,需要改动。 && ....这活,讨论了几天,干了几天,差不多完了。 && 性能、可靠性、二进制兼容性、长久的可靠性(google可是经常随欲的改东西)....因为这玩意是新的,现在谁也不知道。
这帮青年才俊,一直把使用新东西当成是技术长进。
-- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Thu Oct&&1 15:10:04 2015), 站内 && 没了错误日志,怎么除错啊? && 【 在 tgfbeta 的大作中提到: 】
: 觉得生产环境一定要把网页输出的错误关掉,天大的安全隐患。
: 而且我个人偏好是,php负责服务端逻辑就好了,剩下的用ajax。
&& -- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Thu Oct&&1 15:13:08 2015), 站内 && 我知道这个问题被“造成”了,可是我不知道为什么会出现这样的问题.....css的书和文档不少,但都象手册一样....经常是散的,没有整体讲的。
有没有关于css的讲解实例的、尤其是出些奇怪错误的实例的? && 【 在 tgfbeta 的大作中提到: 】
: 你不觉得这是第二个div.panel里面没文字造成的么?
&& -- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Fri Oct&&2 14:15:08 2015), 站内 && 呃,一开始的开发过程中,自然是全echo或die到页面上的。
到了后来,就把这些都慢慢的给收宫了。 && //这是我个人喜欢的风格,象宇宙流一样,一开始先飞个大模样... && 【 在 tgfbeta 的大作中提到: 】
: 关掉页面的输出,从httpd的error log里看最新错误。
&& -- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Fri Oct&&9 13:57:44 2015), 站内 && 帮朋友的忙,前台的css还是没有入门。 && 后面有些面向外行的编辑功能。 && 大家能不能对css 提些意见?我觉得还没word的排版好使呢....
-- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Sat Oct 10 14:34:19 2015), 站内 && 会者不难,难者不会啊.... && 你来了,可以帮我看一下顶楼的Css吗?这么简单的几行字,竟然左右对不齐。 && 【 在 HatsuneMiku 的大作中提到: 】
: css 没什么难得吧
: 把东西做好看主要是有个好美工设计好,css 实现是很简单的
&& -- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
负尽千重罪,练就不死心发信人: muser (负尽千重罪,练就不死心), 信区: SoftEng
标&&题: Re: 求助 一个html css 基础问题
发信站: 水木社区 (Sat Oct 10 14:38:43 2015), 站内 && 我个人觉得,两个太高了....latex排版倒是有这么难。 && 【 在 zeus2615 的大作中提到: 】
: 我觉得css的难度比js高两个数量级,嗯
&& -- && ※ 来源:·水木社区 ·[FROM: 68.135.50.*]
文章数:15&分页:
抽奖到手软!将狂欢进行到底!css代码求助
[问题点数:40分,结帖人xingmingis]
css代码求助
[问题点数:40分,结帖人xingmingis]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年3月 Web 开发大版内专家分月排行榜第二2011年1月 Web 开发大版内专家分月排行榜第二2010年10月 Web 开发大版内专家分月排行榜第二2010年9月 Web 开发大版内专家分月排行榜第二2010年6月 Web 开发大版内专家分月排行榜第二
2012年10月 Web 开发大版内专家分月排行榜第三2010年7月 Web 开发大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。项目需求越来越多,css代码越来越繁重,该怎么整理和管理?
项目中的css代码越来越累赘,不知道怎么开始整理和管理,求知乎偶吧们指点。
建议你使用less这样的css预编译工具,可以极大的降低css的文件结构复杂度,把公共的部分抽离出来。同时建议你分模块、层级结构管理,less提供把多个文件合并的功能,所以你可以把代码分得很细,然后最终聚合到一起。
已有帐号?
无法登录?
社交帐号登录如何书写优雅CSS代码-前端开发博客热门文章
21,154Views
6,555Views
6,105Views
5,505Views
5,330Views
4,833Views后使用快捷导航没有帐号?
只需一步,快速开始
查看: 2096|回复: 6
如何编写干净高效的CSS代码
UID664575在线时间 小时积分202帖子离线17083 天注册时间
中级会员, 积分 202, 距离下一级还需 298 积分
其实CSS的学习并不困难,但在一些较为大型的项目中就显得杂乱无章,变得很难管理,尤其是不同的人编写CSS的风格总会略有不同,从团队合作的层面上来说,就更加难以沟通,所以,我们为此总结了一些如何实现高效整洁的CSS代码原则:
1. 使用Reset但并非全局Reset
不同浏览器元素的默认属性有所不同,使用Reset可重置浏览器元素的一些默认属性,以达到浏览器的兼容。但需要注意的是,请不要使用全局Reset:
*{ margin:0; padding:0; }
这不仅仅因为它是缓慢和低效率的方法,而且还会导致一些不必要的元素也重置了外边距和内边距。在此建议参考YUI Reset和Eric Meyer的做法。我跟Eric Meyer的观点相同,Reset并不是一成不变的,具体还需要根据项目的不同需求做适当的修改,以达到浏览器的兼容和操作上的便利性。我使用的Reset如下:
/** 清除内外边距 **/
body, h1, h2, h3, h4, h5, h6, hr, p,
blockquote, /* structural elements 结构元素 */
dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
pre, /* text formatting elements 文本格式元素 */
form, fieldset, legend, button, input,textarea, /* form elements 表单元素 */
th, td, /* table elements 表格元素 */
img/* img elements 图片元素 */{
margin: 0;
padding: 0;
/** 设置默认字体 **/
body,button, input, select, textarea {
font: 12px/1.5 '宋体',tahoma, Srial, helvetica, sans-
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
em{font-style:}
/** 重置列表元素 **/
ul, ol { list-style: }
/** 重置超链接元素 **/
a { text-decoration: color:#333;}
a:hover { text-decoration:color:#F40; }
/** 重置图片元素 **/
img{ border:0}
/** 重置表格元素 **/
table { border-collapse:border-spacing: 0; }
2. 良好的命名习惯
无疑乱七八糟或者无语义命名的代码,谁看了都会抓狂。就像这样的代码:
.aaabb{margin:2color:}
我想即使是初学者,也不至于会在实际项目中如此命名一个class,但有没有想过这样的代码同样是很有问题的:
&h1&My name is &spanclass=&red blod&&Wiky&/span&&/h1&
问题在于如果你需要把所有原本红色的字体改成蓝色,那修改后就样式就会变成:
.red{color:}
这样的命名就会很让人费解,同样的命名为.leftBar的侧边栏如果需要修改成右侧边栏也会很麻烦。所以,请不要使用元素的特性(颜色,位置,大小等)来命名一个class或id,您可以选择意义的命名如:#navigation{...},.sidebar{...},.postwrap{...}
这样,无论你如何修改定义这些class或id的样式,都不影响它跟HTML元素间的联系。另外还有一种情况,一些固定的样式,定义后就不会修改的了,那你命名时就不用担忧刚刚说的那种情况,如
.alignleft{float:margin-right:20}
.alignright{float:text-align:margin-left:20}
.clear{clear:text-indent:-9999}
那么对于这样一个段落
&p&我是一个段落!&/p&
  如果需要把这个段落由原先的左对齐修改为右对齐,那么只需要修改它的className就为alignright就可以了。
3. 代码缩写
CSS代码缩写可以提高你写代码的速度,精简你的代码量。在CSS里面有不少可以缩写的属性,包括margin,padding,border,font,background和颜色值等,如果您学会了代码缩写,原本这样的代码:
& &font-family:Arial, Helvetica, sans-
& &font-size: 1.2
& &line-height: 1.4
& &padding-top:5
& &padding-bottom:10
& &padding-left:5
就可以缩写为:
& &font: 1.2em/1.4em Arial, Helvetica, sans-
& &padding:5px 0 10px 5
如果您想更了解这些属性要怎么缩写,可以参考《常用CSS缩写语法总结》或者下载CSS-Shorthand-Cheat-Sheet.pdf 。
4. 利用CSS继承
如果页面中父元素的多个子元素使用相同的样式,那最好把他们相同的样式定义在其父元素上,让它们继承这些CSS样式。这样你可以很好的维护你的代码,并且还可以减少代码量。那么本来这样的代码:
#container li{ font-family:Georgia,}
#container p{ font-family:Georgia, }
#container h1{font-family:Georgia, }
就可以简写成:
#container{ font-family:Georgia, }
5. 使用多重选择器
你可以合并多个CSS选择器为一个,如果他们有共同的样式的话。这样做不但代码简洁且可为你节省时间和空间。如:
h1{ font-family:Arial, Helvetica, sans-font-weight: }
h2{ font-family:Arial, Helvetica,sans- font-weight: }
h3{ font-family:Arial, Helvetica,sans- font-weight: }
可以合并为
h1, h2, h3{ font-family:Arial, Helvetica,sans- font-weight: }
6. 适当的代码注释
代码注释可以让别人更容易读懂你的代码,且合理的组织代码注释,可使得结构更加清晰。你可以选择做的样式表的开始添加目录:
/*------------------------------------
& &1. Reset
& &2. Header
& &3. Content
& &4. SideBar
& &5. Footer
----------------------------------- */
如此你代码的结构就一目了然,你可以容易的查找和修改代码。而对于代码的主内容,也应适当的加以划分,甚至在有必要的地方在对代码加以注释说明,这样也有利于团队开发:
/***& &Header&&***/
#header{ height:145 position: }
#header h1{ width:324 margin:45px 0 020 float:&&height:72}
/***& &Content ***/
#content{ background:# width:650float: min-height:600 overflow:}
#content h1{color:#F00}/* 设置字体颜色 */
#content .posts{ overflow: }
#content .recent{ margin-bottom:20border-bottom:1px solid #f3f3f3; position: overflow: }
/***& &Footer&&***/
#footer{ clear: padding:50px 5px 0;overflow:}
#footer h4{ color:#b99d7f;font-family:Arial, Helvetica, sans- font-size:1.1 }
7. 给你的CSS代码排序
如果代码中的属性都能按照字母排序,那查找修改的时候就能更加快速:
/*** 样式属性按字母排序 ***/
& &background-color:#3399
& &color:#666;
& &font:1.2em/1.4em Arial, Helvetica, sans-
& &height:300
& &margin:10px 5
& &padding:5px 0 10px 5
& &width:30%;
& &z-index:10;
8. 保持CSS的可读性
书写可读的CSS将会使得更容易查找和修改样式。对于以下两种情况,哪种可读性更高,我想不言而明。
/*** 每个样式属性写一行 ***/
& &background-color:#3399
& &color:#666;
& &font: 1.2em/1.4em Arial, Helvetica, sans-
& &height:300
& &margin:10px 5
& &padding:5px 0 10px 5
& &width:30%;
& &z-index:10;
/*** 所有的样式属性写在同一行 ***/
div{ background-color:#3399 color:#666;font: 1.2em/1.4em Arial, Helvetica, sans- height:300 margin:10px 5 padding:5px 0 10px 5 width:30%;z-index:10; }
当对于一些样式属性较少的选择器,我会写到一行:
/*** 选择器属性少的写在同一行 ***/
div{ background-color:#3399 color:#666;}
对于这个规则并非硬性规定,但无论您采用哪种写法,我的建议是始终保持代码一致。属性多的分行写,属性少于3个可以写一行。
9. 选择更优的样式属性值
CSS中有些属性采用不同的属性值,虽然达到的效果差不多,当性能上却存在着差异,如区别在于border:0把border设为0px,虽然在页面上看不见,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值。
而border:none把border设为“none”即没有,浏览器解析“none”时将不作出渲染动作,即不会消耗内存值。所以建议使用border:
同样的,display:none隐藏对象浏览器不作渲染,不占用内存。而visibility:hidden则会。
10. 使用&link&代替@import
首先,@import不属于XHTML标签,也不是Web标准的一部分,它对于较早期的浏览器兼容也不高,并且对于网站的性能有某些负面的影响。具体可以参考《高性能网站设计:不要使用@import》。所以,请避免使用@import
11. 使用外部样式表
这个原则始终是一个很好的设计实践。不单可以更易于维护修改,更重要的是使用外部文件可以提高页面速度,因为CSS文件都能在浏览器中产生缓存。内置在 HTML文档中的CSS则会在每次请求中随HTML文档重新下载。所以,在实际应用中,没有必要把CSS代码内置在HTML文档中:
&style type=&text/css& &
& &#container{ .. }
& &#sidebar{ .. }
&li style=&font-family:Arial,helvetica, sans- color:#666; & &
而是使用&link&导入外部样式表:
&link rel=&stylesheet&type=&text/css& href=&css/styles.css& /&
12. 避免使用CSS表达式(Expression)
CSS表达式是动态设置CSS属性的强大(但危险)方法。InternetExplorer从第5个版本开始支持CSS表达式。下面的例子中,使用CSS表达式可以实现隔一个小时切换一次背景颜色:
background-color: expression( (new Date()).getHours()%2? &#B8D4FF& : &#F08A00& );
如上所示,expression中使用了JavaScript表达式。CSS属性根据JavaScript表达式的计算结果来设置。
表达式的问题就在于它的计算频率要比我们想象的多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算量。
如果必须使用CSS表达式,一定要记住它们要计算成千上万次并且可能会对你页面的性能产生影响。所以,在非不得已,请避免使用CSS表达式。
13. 代码压缩
当你决定把网站项目部署到网络上,那你就要考虑对CSS进行压缩,出去注释和空格,以使得网页加载得更快。压缩您的代码,可以采用一些工具,如YUI Compressor
利用它可精简CSS代码,减少文件大小,以获得更高的加载速度。
UID434687在线时间 小时积分1552帖子离线17083 天注册时间
银牌会员, 积分 1552, 距离下一级还需 1448 积分
UID418019在线时间 小时积分1591帖子离线17083 天注册时间
银牌会员, 积分 1591, 距离下一级还需 1409 积分
写的不错,不过.clear{clear:text-indent:-9999}
用clearfix的比较多吧。
UID658003在线时间 小时积分2713帖子离线17083 天注册时间
银牌会员, 积分 2713, 距离下一级还需 287 积分
要写这么多reset,烦不烦啊:(
UID666605在线时间 小时积分8帖子离线17083 天注册时间
新手上路, 积分 8, 距离下一级还需 42 积分
不错,支持一下
UID663823在线时间 小时积分52帖子离线17083 天注册时间
初级会员, 积分 52, 距离下一级还需 148 积分
&h1&My name is &spanclass=&red blod&&Wiky&/span&&/h1&
问题在于如果你需要把所有原本红色的字体改成蓝色,那修改后就样式就会变成:
直接改成blue blod就行了,那个red{color:}是脑残吧
后面都知道要这样....
alignleft{float:margin-right:20}
.alignright{float:text-align:margin-left:20}
.clear{clear:text-indent:-9999}
那么对于这样一个段落
&p&我是一个段落!&/p&
  如果需要把这个段落由原先的左对齐修改为右对齐,那么只需要修改它的className就为alignright就可以了。
UID328321在线时间 小时积分868帖子离线17083 天注册时间
高级会员, 积分 868, 距离下一级还需 132 积分
Powered by

我要回帖

更多关于 css id class区别 的文章

 

随机推荐