![]() |
|
作者信息 | 主题: HTML/CSS网页设计总结16310 | ||||
|
发表时间:
2010-4-23 12:15:33
特别提示:本帖子在 2013-12-9 17:56:23 由用户
白瑞德
编辑过
【2013.12.9】 浪漫烛光 www.langmanzg.com 1,关于用DIV实现多行多列区块效果的问题: 浪漫烛光 www.langmanzg.com 嵌套结构应该是这样的: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com [div] 浪漫烛光 www.langmanzg.com 第一行 浪漫烛光 www.langmanzg.com [div] 浪漫烛光 www.langmanzg.com [div}....[/div] 浪漫烛光 www.langmanzg.com [div]....[/div] 浪漫烛光 www.langmanzg.com [div]....[/div] 浪漫烛光 www.langmanzg.com [/div] 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 第二行 浪漫烛光 www.langmanzg.com [div] 浪漫烛光 www.langmanzg.com [div]....[/div] 浪漫烛光 www.langmanzg.com [div]....[/div] 浪漫烛光 www.langmanzg.com [div]....[/div] 浪漫烛光 www.langmanzg.com [/div] 浪漫烛光 www.langmanzg.com [/div] 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 注意几点: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,DIV标签的默认DISPLAY属性是BLOCK,即一个区块一行,如果要设置同行的,该属性必须设置为INLINE,另外,要使该设置生效,必须还要设置WIDTH属性,另外浮动属性FLOAT设置为LEFT即可。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,对于嵌套行上的CSS属性 这样div style="width:100%;clear:both;height:1000px; 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【6.1】 浪漫烛光 www.langmanzg.com 今天解决了ZG网站文章页面排版错误的问题,首先,通过设置CSS属性,将正文设置为“两端对齐”会更加美观一些。另外就是原本在正文输入的时候,作者给每行空了两个格(中文字符),但是正文显示的时候总是缺了一个“半角”空格标签,后来是这样改的: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 在TD标签中,去掉 class=black 加上style="font-size:14px;" 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【5.30】 浪漫烛光 www.langmanzg.com 今天有遇到所谓的“垂直居中”的问题了,经过查询资料,如果要使一行文本相对于整个DIV容器垂直居中,那么: 浪漫烛光 www.langmanzg.com 我们可以在DIV标签中,设置line-height与height具有相同的高度,这是一个最简单的办法,可是,在本例中,要求却不仅仅如此。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 除了要让文本垂直居中以外,我们还需要设置文字所在行的背景色,可是,如果使用SPAN标签,对于行内元素来说,它是无法设置自定义宽度的,而如果采用“块元素”,那么它默认的相对位置适合外层DIV的起始位置相同的,无法设置这种居中属性。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 要注意下列方法都是难以实现垂直居中: 浪漫烛光 www.langmanzg.com 1,在DIV中设置vertical-align:middle 如果所需对齐的元素在同一个DIV内或许可以,但是假设有多层DIV嵌套,这个设置就很难成功; 浪漫烛光 www.langmanzg.com 2,设置Display属性,比如说将外层DIV和内层元素标签分别设置成为Display:table 和Display:table-cell,这种方法似乎无法生效; 浪漫烛光 www.langmanzg.com 3,设置Display属性 为Inline-block 也就是说,能够设置宽度的“行内”元素,不过这种方法需要浏览器高版本的支持~ 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 其实有个简单的办法,就是嵌套两个DIV,然后设置其margin-top(bottom)属性,像这种产品项目列表元素,我们的行高都是固定的,这样我们就能够很容易确定margin的值了。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【1.27】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 有关网页背景图片自适应高度的问题,对于宽度,我们可以用一个CSS滤镜来实现,而对于高度,我们可以在背景图片设置的标签中将min-height属性设置为相对高度 100%,但是,这里的相对高度属性要设置成功的话,它的上一层标签的属性,比如说,对于BODY就是HTML标签,这个标签中必须要设置height的值,它也可以是相对高度值,但是,设置min-height则是不会奏效的,要切记! 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 如果要让某个元素一直位于页面中央,而不管显示器长宽比与分辨率,那么,可以考虑用TABLE表格嵌套来实现,这个要方便一些。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【1.18】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 要是DIV中的元素“右对齐”,如果用text-align 属性设置不成功的话,可以考虑设置浮动属性,只需将其设置为float:right 即可。至于为什么?我还要研究。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【1.15】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 在仅设置底边框时,底边框在IE6 IE7下都不显示的问题: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com ---要这样写: 浪漫烛光 www.langmanzg.com border-width: 0 0 1px 0; 浪漫烛光 www.langmanzg.com border-style: solid; 浪漫烛光 www.langmanzg.com border-color:#829e56; /*如果只设一个边距一定要这样写,不要简写*/ 浪漫烛光 www.langmanzg.com vertical-align:middle; 浪漫烛光 www.langmanzg.com margin-bottom:2px;/*不设置的话,在IE6.0和7.0下底边框显示不出*/ 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com ============================================================================== 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 今天转一篇文章: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 图片下边的多余空隙——IE布局BUG集锦 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com IE6下图片元素下多余空隙这个问题是个老生常谈的问题,平时自己做项目也是见招拆招,没有系统的总结过到底有多少种方法。最近上网一网打尽IE6BUG,这里我就当是温故而知新,具体表现形式就不列举了,直接把解决方法归纳出来。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 以下总结归纳网络上比较常用的几种方法,都不知道谁的是原创了,只能说表示感谢网络同仁们了。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 一、将图片转换为块级对象 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 即,设置img为“display:block;”。在本例中添加一组CSS代码:“#sub img {display:block;}”。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 二、设置图片的垂直对齐方式 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 即设置图片的vertical-align属性为“top,text-top,bottom,text-bottom”也可以解决。如本例中增加一组CSS代码:“#sub img {vertical-align:top;}”。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 三、设置父对象的文字大小为0px 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 即,在#sub中添加一行:“font-size:0;”可以解决问题。但这也引发了新的问题,在父对象中的文字都无法显示。就算文字部分被子对象括起来,设置子对象文字大小依然可以显示,但在CSS效验的时候会提示文字过小的错误。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 四、改变父对象的属性 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 如果父对象的宽、高固定,图片大小随父对象而定,那么可以设置“overflow:hidden;”来解决。如本例中可以向#sub中添加以下代码:“width:88px;height:31px;overflow:hidden;”。 浪漫烛光 www.langmanzg.com -----用这个好些。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 五、设置图片的浮动属性 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 即在本例中增加一行CSS代码:“#sub img {float:left;}”。如果要实现图文混排,这种方法是很好的选择。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 六、取消图片标签和其父对象的最后一个结束标签之间的空格。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 这个方法要强调下,在实际开发中该方法可能会出乱子,因为在写代码的时候为了让代码更体现语义和层次清晰,难免要通过IDE提供代码缩进显示,这必然会让标签和其他标签换行显示,比如说DW的“套用源格式”命令。所以说这个方法可以供我们了解出现BUG的一种情况,具体解决方案的还得各位见招拆招了sW r[}lkL+m%Df9dAK。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【1.14】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 昨天又弄明白了几点东西,但是没总结,今天总结看看吧: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,首先,有关UL标签的问题,作为无序列表来说,有时候我们需要为其设置“标题”,但是标题行用什么才合适呢?经过学习发现,还是使用h1系列标签最好,或许,这就是h1-h6标签存在的意义之一了吧。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 如果想要简单起见,那么可以直接在UL属性中设置DISPLAY:INLINE即可,但是注意,这在IE8.0下会导致显示重合的错误。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 但是注意,对于H系列标签来说,很多属性(比如 height)是失效的,而且,对于IE8.0来说,连margin属性都不能用,这点值得研究。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,设置鼠标经过某个链接其链接背景色变化,只要对a:hover伪类中的background进行设置即可。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,只能被IE8识别的CSS HACK是在属性后面加 \0,IE8兼容,当然它还有更简便的方法,其实不需要这么复杂的。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 有关UL和LI标签的问题,其实它们是不被外层盒子所约束的,那么如果要受到它们的约束,应该如何写呢? 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 注意!IE6.0和IE7.0/8.0 对于盒子嵌套的解释是不同的,比如说,IE6.0在DIV中嵌套的UL标签,会根据LI实际的宽度把DIV撑开,但是IE7.0/8.0则是二者互不关联的,多出的部分会显示在DIV的外面,很不美观。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 要明确这一点,或者其他的嵌套也存在类似的问题,可能是overflow属性的问题? 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【1.13】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 要使CSS兼容IE6.0 7.0和8.0已经够困难的了,FF~~~先不考虑了吧…… 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 发现了一个问题,在一个DIV中,如果我同时设置了height与line-height,那么,如果说我要再单独设置一个边框,如border-bottom,那么对于IE6和IE7来说,必须要先设置margin-bottom才行,但是,如果设置border,则可以不用设置margin,注意!如果单独设置一个位置的border,在设置之前必须要把对应的margin也设置好,否则这个边框往往显示不出。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 要设置同行的图片和文字对齐,文字要在SPAN标签内,然后SPAN和IMG,都要设置height和line-height属性,vertical-align:middle 也要设置好。其他的就不用设了,标签最好设置上宽度,如果没设,也可以在最后图片标签上,设置IMG 的MARGIN-LEFT属性。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【1.12】 浪漫烛光 www.langmanzg.com 看来拖拉终于付出了代价,很多事情,做网站,还是先静态化吧,先把页面全部都弄上再说可以吗? 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 有关页面布局的问题,一般来说,像这种CSS的布局,大块元素都要设置居中的,此时,可以再BODY中设置,也可以将所有居中元素嵌套与一个DIV中,在这个总DIV中设置。具体需要以下几个属性: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 在BODY或者DIV中,设置margin-left和margin-right都是auto 浪漫烛光 www.langmanzg.com 然后,很重要的一点是,设置text-align属性为center 这一点非常重要,它可以控制内层子元素的水平居中(左右对齐),虽然名字会让人产生混淆,不过可能也反映了规则制定者的初始用意,有点意思。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 设置外边距(左右)分别为auto时,如果在子元素中没有进一步设置设置width,那么它会铺满父元素的控件,对于BODY标签来说,当^WIun'\':Bf6NB然就是铺满网页宽度了。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 灵活使用左右边距的margin和固定设置,会产生很多不错的效果。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 几点思考: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 1,P元素最好不要相邻,如果有相邻的两个P元素,他们之间会产生一个空行,处理较麻烦,而DIV元素就不会产生空行。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 2,对于长串的中间没有间隔的英文字符来说,默认是无法用普通方式对其进行强制换行的,只能采取“硬”换行的方式。属性:word-break:all-break; 注意,这个CSS属性在DW2004中是不会有输入提示的,因此不要以为自己是写错了 :-) 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 3,关于用UL和Li标签控制图片列表布局的问题。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 其实是否使用这种布局,纯粹是根据你的喜好而定。虽说CSS2.0还不能像XML那样,但是有不少标签确实是“弱定义”型标签。但是有关具体布局,还是要仔细斟酌。比如说我要求做一个两行,每行四个图片的列表。那么,我们在设置UL的宽度时,只要让它的WIDTH属性等于(如果大于将会产生什么样的后果?这要分情况而定),4个图片的宽度+边框宽度(或许还EtfL02.:`~&/有内边距PADDING的宽度)+外边距MARGIN的宽度(注意外边距的数量),然后就可以自动排列成两行了,而无需为每行建一个UL无序列表。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 今天在调试的时候,按照网上一个资料文说的,但是实际操作时,第一个图片的左边距总是多出来很多,最后逐个调试,终于找到了问题所在。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com #products { 浪漫烛光 www.langmanzg.com width:960px; 浪漫烛光 www.langmanzg.com margin:30px 0 80px 0; 浪漫烛光 www.langmanzg.com display:inline; 浪漫烛光 www.langmanzg.com } 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com #products li { 浪漫烛光 www.langmanzg.com list-style-type:none; 浪漫烛光 www.langmanzg.com width:280px; 浪漫烛光 www.langmanzg.com height:266px;; 浪漫烛光 www.langmanzg.com float:left; 浪漫烛光 www.langmanzg.com margin-left:30px; 浪漫烛光 www.langmanzg.com margin-top:20px; 浪漫烛光 www.langmanzg.com display:inline; 浪漫烛光 www.langmanzg.com font-family:Tahoma; 浪漫烛光 www.langmanzg.com } 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com products是无序列表的UL的ID。但是,在具体设置时,要注意,不仅仅Li要设置INLINE属性,而且UL也同样要设置INLINE属性(因为它本来就是BLOCK类型e#H6bg`l([|];~52的元素) 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【1.7】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com
有关兼容性的问题,IE6和IE8对同一种元素的解释 |
||||
每当你几乎快被困难击倒,丧失斗志的时候,你就想想背后还有无数等你倒下捅刀子的SB,就充满了力量。
|
作者信息 | 主题: HTML/CSS网页设计总结18259 | ||||
|
发表时间:
2010-6-11 7:57:43
特别提示:本帖子在 2010-9-16 14:23:49 由用户
白瑞德
编辑过
有关Div标签的问题。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 它设置好后,可以移动,布局方便,但是不知如何相对定位?用绝对定位的方式对于页面显示的尺寸要求极为苛刻 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 另外,如果采用Div之后,整个页面Body标签的尺寸和其中下边缘最下的Div的宽度相同,可移动的Div同样可以将其拉长。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 上文所说的是可以移动的DIV,这个一般来说在大型网站设计中存在缺陷,因为你很难针对不同的浏览器尺寸设计“居中”对齐。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【7.2】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 有关将多个div区块同行显示的问题:应该使用div嵌套,否则默认它们是一行只有一个DIV的。示例如下: 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com div{margin:auto} 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com .box{width:你想要的宽度 比如600px;} 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com .wenzhang1{width:280px;float:left} 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com .wenzhang2{width:320px;float:right} 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com div class="box" 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com div class="wenzhang1"/div 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com div class="wenzhang2"/div 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com /div 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 这样就排成一行了,两个DIV要想排成一行,必须得给该DIV加上漂浮,DIV是容器不是表格 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 补充…… 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 【2010.2.5】 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com HTML文件中大些和小写的问题。 浪漫烛光 www.langmanzg.com 浪漫烛光 www.langmanzg.com 复制粘贴时,HTML文件是不会替换大写和小写的,也就是说一个文件中有abc和ABC会被视为是同一个文件,但是在应用图片对象时,标签中文件名确是区分大写和小写的,所以,遇到类似的情况就需要将这个HTML文件先删除,然后在复制新的文件。 浪漫烛光 www.langmanzg.com
|
||||
每当你几乎快被困难击倒,丧失斗志的时候,你就想想背后还有无数等你倒下捅刀子的SB,就充满了力量。
|
新用户注册 返回首页 | ||||||||