纯CSS实现表头牢固的代码示例
纯CSS实现表头牢固之所以难,主要在两点。一是占有最大市场份额的IE6不支撑position:fixed。另一个,是人们想破头都想在一起表格中实现这种结果。
我们晓得,CSS是负责体现,HTML是负责构造,一样的构造,换个样式,给人的感觉完全不一样,这也注明人的眼睛是很容易挨骗。因而前些狂热鼓吹p+CSS的日子里,人们总是想在页面去除table,用p+span弄出了一个个“table”来。虽然这种事是不成取,但也告诉我们,table做得的事,通过一些组合我们也能做出来。换个思绪来说,既然一个table做不了,就两个吧。上面的table模拟表头,下面的table模拟带滚动条的局部。在我们继续讲下去以前,我们先明白一下我们的需求吧,要不太抽象了。第一是表格为4*9,每列宽170px,总为680px,滚动条在各阅读器默许为16px,别忘了,width是不包括border在内,四列就有5个纵向的border,宽总长为701px。
然后我们把这个table一分为二,首先个table为表头,第二个table要带滚动条,注明要在其父元素上利用overflow样式,因而它要外衣一个p。这个p与首先个table应当是等长的。不外不消花心思了,我们在它们的外面最套一个p,设定其width为701px,然后把这两个子元素的宽都设为100%就行了。注意,我们在table中显式增加tbody以提高表格的渲染效率。
名称 | 语法 | 注明 | 例子 |
---|
Simple attribute Selector | [attr] | 选中拥有此属性的元素 | blockquote[title] { color: red } |
attribute Value Selector | [attr="value"] | 选出属性值精准等于给出值的元素 | h2[align="left"] { cursor: hand } |
"Begins-with" attribute Value Selector | [attr^="value"] | 选出属性值以给出值开头的元素 | h2[align^="right"] { cursor: hand } |
"Ends-with" attribute Value Selector | [attr$="value"] | 选出属性值以给出值结尾的元素 | p[class$="vml"]{ cursor: hand} |
Substring-match attribute Value Selector | [attr*="value"] | 选出属性值包括给出值的元素 | p[class*="grid"]{ float:left} |
One-Of-Many Attribute Value Selector | [attr~="value"] | 原元素的属性值为多个单词,给出值为其中一个。 | li[class~="last"]{ padding-left:2em} |
Hyphen Attribute Value Selector | [attr|="value"] | 原元素的属性值等于给出值,或者以给出值加“-”开头 | span[lang|="en"]{ color:green} |
反选属性值选中器 | [attr!="value"] | 非规范,jQuery中涌现的 | span[class!="red"]{ color:green} |
体现层局部:
#scrollTable { width:701px; border: 1px solid #EB8;/*table没有外围的border,只要内部的td或th有border*/ background: #FF8C00; } #scrollTable table { border-collapse:collapse; /*同一设定两个table为细线表格*/ } #scrollTable table.thead{ /*表头*/ /*p的首先个子元素*/ width:100%; } #scrollTable table.thead th{/*表头*/ border: 1px solid #EB8; border-right:#C96; color:#fff; background: #FF8C00;/*亮桔黄色*/ } #scrollTable p{/*能带滚动条的表身*/ /*p的第二个子元素*/ width:100%; height:200px; overflow:auto;/*必须*/ } #scrollTable table.tbody{/*能带滚动条的表身的正体*/ width:100%; border: 1px solid #C96; border-right:#B74; color:#666666; background: #ECE9D8; } #scrollTable table.tbody td{/*能带滚动条的表身的格子*/ border:1px solid #C96; }
运转代码:
纯CSS实现表头牢固
名称 | 语法 | 注明 | 例子 |
---|
Simple attribute Selector | [attr] | 选中拥有此属性的元素 | blockquote[title] { color: red } |
attribute Value Selector | [attr="value"] | 选出属性值精准等于给出值的元素 | h2[align="left"] { cursor: hand } |
"Begins-with" attribute Value Selector | [attr^="value"] | 选出属性值以给出值开头的元素 | h2[align^="right"] { cursor: hand } |
"Ends-with" attribute Value Selector | [attr$="value"] | 选出属性值以给出值结尾的元素 | p[class$="vml"]{ cursor: hand} |
Substring-match attribute Value Selector | [attr*="value"] | 选出属性值包括给出值的元素 | p[class*="grid"]{ float:left} |
One-Of-Many Attribute Value Selector | [attr~="value"] | 原元素的属性值为多个单词,给出值为其中一个。 | li[class~="last"]{ padding-left:2em} |
Hyphen Attribute Value Selector | [attr|="value"] | 原元素的属性值等于给出值,或者以给出值加“-”开头 | span[lang|="en"]{ color:green} |
反选属性值选中器 | [attr!="value"] | 非规范,jQuery中涌现的 | span[class!="red"]{ color:green} |
发明表头的格子与表身的格子不合错误齐。这时我们需要动用col标签,col允许我们同一设定tbody中索引值与它雷同的td或th的配景色,文字对齐方式与宽度。虽然CSS2.1的相邻选中器与CSS3的子元素过滤伪类能让我们用更精简的方式设定它们,并且是样式与构造别离那种,惋惜IE家族总是拖后腿。我们再看一下它们的长度,因为最后一个表格有可能挨滚动条挤压而缩短长度,我们保障前三列长度相称就行了,剩余的都分配给最后一个,换言之,最后一个不消设定。另,IE下可以设定滚动条的样式,我们也把玩一翻吧。
体现层局部:
#scrollTable { width:701px; border: 1px solid #EB8;/*table没有外围的border,只要内部的td或th有border*/ background: #FF8C00; } #scrollTable table { border-collapse:collapse; /*同一设定两个table为细线表格*/ } /*表头 p的首先个子元素**/ #scrollTable table.thead{ width:100%; } /*表头*/ #scrollTable table.thead th{ border: 1px solid #EB8; border-right:#C96; color:#fff; background: #FF8C00;/*亮桔黄色*/ } /*能带滚动条的表身*/ /*p的第二个子元素*/ #scrollTable p{ width:100%; height:200px; overflow:auto;/*必须*/ scrollbar-face-color:#EB8;/*那三个小矩形的配景色*/ scrollbar-base-color:#ece9d8;/*那三个小矩形的远景色*/ scrollbar-arrow-color:#FF8C00;/*高低按钮里三角箭头的色彩*/ scrollbar-track-color:#ece9d8;/*滚动条的阿谁流动块所在的矩形的配景色*/ scrollbar-highlight-color:#800040;/*那三个小矩形左上padding的色彩*/ scrollbar-shadow-color:#800040;/*那三个小矩形右下padding的色彩*/ scrollbar-3dlight-color: #EB8;/*那三个小矩形左上border的色彩*/ scrollbar-darkshadow-Color:#EB8;/*那三个小矩形右下border的色彩*/ } /*能带滚动条的表身的正体*/ #scrollTable table.tbody{ width:100%; border: 1px solid #C96; border-right:#B74; color:#666666; background: #ECE9D8; } /*能带滚动条的表身的格子*/ #scrollTable table.tbody td{ border:1px solid #C96; }
运转代码:
纯CSS实现表头牢固
名称 | 语法 | 注明 | 例子 |
---|
Simple attribute Selector | [attr] | 选中拥有此属性的元素 | blockquote[title] { color: red } |
attribute Value Selector | [attr="value"] | 选出属性值精准等于给出值的元素 | h2[align="left"] { cursor: hand } |
"Begins-with" attribute Value Selector | [attr^="value"] | 选出属性值以给出值开头的元素 | h2[align^="right"] { cursor: hand } |
"Ends-with" attribute Value Selector | [attr$="value"] | 选出属性值以给出值结尾的元素 | p[class$="vml"]{ cursor: hand} |
Substring-match attribute Value Selector | [attr*="value"] | 选出属性值包括给出值的元素 | p[class*="grid"]{ float:left} |
One-Of-Many Attribute Value Selector | [attr~="value"] | 原元素的属性值为多个单词,给出值为其中一个。 | li[class~="last"]{ padding-left:2em} |
Hyphen Attribute Value Selector | [attr|="value"] | 原元素的属性值等于给出值,或者以给出值加“-”开头 | span[lang|="en"]{ color:green} |
反选属性值选中器 | [attr!="value"] | 非规范,jQuery中涌现的 | span[class!="red"]{ color:green} |
以上就是纯CSS实现表头牢固的代码示例的细致内容,更多请关注 百分百源码网 其它相干文章!