CSS的隐藏功能

时间:2009-03-09 23:17:28

标签: css hidden-features

我确实在隐藏功能样式问题中找到了一些有关PHP和XHTML的有用提示。

所以这里是一个涵盖CSS。虽然容易上手,但需要花一点时间来了解一切,他们的默认行为,属性等等。

这里有一些开球

@charset "UTF-8"; /* set the character set. must be first line as Gumbo points out in comments */

.element {
        /* takes precedence over other stylings */
        display: block !important;

        /* mozilla .... rounded corners with no images */
        -moz-border-radius: 10px; 

        /* webkit equivalent */
        -webkit-border-radius: 10px 
}

这些并不是隐藏,但它们的使用并不常见。您在CSS中发现了哪些提示,技巧,稀有功能?

27 个答案:

答案 0 :(得分:58)

您可以显示文档的title元素:

head, title {
    display: block;
}

答案 1 :(得分:39)

将多个样式/类应用于此class="bold red GoldBg"

之类的元素
<html><head>
<style>
.bold {font-weight:bold}
.red {color:red}
.GoldBg {background-color:gold}
</style>
</head><body>
<p class="bold red GoldBg">Foo.Bar(red)</p>
</body></html>

答案 2 :(得分:38)

我真的很喜欢CSS sprites。

不是为所有网站按钮和徽标设置20个图像(因此20个http请求,每个图像的延迟时间),您只需使用一个图像,并每次定位,以便只显示您想要的位。

很难发布一个示例,因为您需要查看组件图片和展示位置CSS - 但我在此处写了Google对其使用的博客:http://www.stevefenton.co.uk/Content/Blog/Date/200905/Blog/Google-Uses-Image-Sprites/

答案 3 :(得分:25)

float父元素将导致它展开以包含其所有float ed子节目。

答案 4 :(得分:23)

可能负边距相对定位元素中的绝对定位元素

有关示例,请参阅How would YOU do this with CSS?

答案 5 :(得分:23)

您可以通过指定leftright属性来为绝对定位的元素设置可变宽度。与仅将width设置为百分比相比,这为您提供了更多控制。

例如:

#myElement {
    position: absolute;
    left: 5px;
    right: 10px;
}

替代示例

#myElement{ /* fill up the whole space :) */
   background: red;
   position:absolute;
   left: 0;
   right:0;
   top: 0;
   bottom: 0;
}

答案 6 :(得分:21)

看看Webkit CSS Transformations,例如-webkit-transform: rotate(9deg);

sample

答案 7 :(得分:15)

我的是:

  • [{1}},azimuth ...
  • 等听觉表的所有属性
  • 打印模块的某些属性,如pitch
  • page-break-after: avoid;
  • counter-increment: section 1;
  • border-collapse: collapse;
  • background-color: transparent;

答案 8 :(得分:15)

不是真正的功能,但仍然有用:子选择器适用于除IE6之外的所有浏览器,允许您在不使用黑客或条件样式表的情况下隔离IE6或使代码无效。因此,以下代码中的链接在IE6中为红色,在每个其他浏览器中为蓝色。

<强> CSS

/*Red for IE6*/
.link {color:#F00;}
/*Blue for everything else*/
#content>.link {color:#00F;}

<强> HTML

<div id="content">
    <a class="link" href="#">Link</a>
</div>

这是list of selectors(针对CSS2)和browser compatibility chart

答案 9 :(得分:15)

上周我发现了一个我从未听说过的非常有用的CSS属性:

text-rendering: optimizeLegibility;

Safari,Chrome和Firefox都了解此属性,并在设置时启用高级字距调整和连字。这是一个很棒的demo

答案 10 :(得分:14)

IE6中的透明PNG 这修复了IE6中的PNG透明度。将背景设置为非背景并将图像包含在过滤器中。不需要任何javascript或htc。

.whatever {
   background: none; /* Hide the current background image so you can replace it with the filter*/
   width: 500px; /* Must specify width */
   height: 176px; /* Must specify height */
   filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='vehicles.png');
}

在元素后设置分页行为 - 跨浏览器

table {
   page-break-after:always
} 

您可以始终使用属性,避免,自动,左,右,固有。阅读http://www.w3schools.com/CSS/pr_print_pageba.asp

上的文档

使用“第1部分”,“1.1”,“1.2”等对部分和子部分进行编号的方法 - 跨浏览器

h2:before 
{
   counter-increment:subsection;
   content:counter(section) "." counter(subsection) " ";
}

http://www.w3schools.com/CSS/pr_gen_counter-increment.asp

将表格边框折叠为单个边框或分离,如标准HTML中所示 - 跨浏览器

table
{
   border-collapse:collapse;
}

http://www.w3schools.com/css/pr_tab_border-collapse.asp

从按钮或输入字段中删除选择边框或虚线。还有其他很好的用途 - 跨浏览器

button{
   outline:0;
}

http://www.w3schools.com/CSS/pr_outline.asp

* html在IE6中为100%高度

* html .move{
   height:100%;
}

允许长字断开并换行到下一行 - CSS3 Cross浏览器

.whatever {
   word-wrap:break-word;
}

http://www.w3schools.com/css3/css3_pr_word-wrap.asp

速记

之前

font-size: 1em;
line-height: 1.5em;
font-weight: bold;
font-style: italic;
font-family: serif 

font: 1em/1.5em bold italic serif;

之前

background-color: #fff;
background-image: url(image.gif);
background-repeat: no-repeat;
background-position: top left;

background: #fff url(image.gif) no-repeat top left;

之前

list-style: #fff;
list-style-type: disc;
list-style-position: outside;
list-style-image: url(image.gif) 

list-style: disc outside url(something.gif);

之前

margin-top: 2px;
margin-right: 1px;
margin-bottom: 3px;
margin-left: 4px 

margin:2px 1px 3px 4px; /*also works for padding*/
margin:0; /*You can also do this for all 0 borders*/
margin:2px 3px 5px; /*  you can do this for top 2px, left/right 3px, bottom 5px and ;    

答案 11 :(得分:9)

您可以使用CSS的overflow属性创建滚动区域而无需借助框架。例如:

div.foo {
    border:   1px solid;
    width:    300px;
    height:   300px;
    overflow: auto;
}

overflow: auto表示如果内容无法放入div中,则会根据需要显示水平和/或垂直滚动​​条。

overflow: scroll表示两个滚动条始终存在。如果您只想要一个滚动条,请使用overflow-xoverflow-y(现代浏览器和IE6支持)。

你们中的一些人可能在想“duuuh”,但我很惊讶地发现可以在没有框架的情况下创建滚动区域。

答案 12 :(得分:8)

:之前:之后伪元素

以下规则导致在每个H1元素之前生成字符串“Chapter:”:

H1:before { 
  content: "Chapter: ";
  display: inline;
}

更多信息,http://www.w3.org/TR/CSS2/generate.html

答案 13 :(得分:7)

我们可以将样式标记显示为块元素,并使用HTML5 contenteditable 属性动态编辑CSS。 Demo Here.

   <body>
       <style contenteditable>
           style {
            display: block;
           }
           body {
            background: #FEA;
           }

       </style>
   </body>

致谢:CSS-Tricks

答案 14 :(得分:7)

没有那么多隐藏功能,而是一个以 CSS tips which every beginning developer should know about

为特色的问题

答案 15 :(得分:7)

内联@media作业:

/* Styles.css */
.foo { ... bar ... }
...
@media print{
    .ads{display:none}
}

这样你就可以摆脱另一个HTTP请求。

答案 16 :(得分:7)

内联块(替代浮动div):

.inline_block
{
    display:-moz-inline-box;
    display:inline-block;
}  

不要将此类应用于div!它不起作用!将它应用于span(或内联元素)

<span class="inline_block">
</span>

答案 17 :(得分:6)

目前仅适用于WebKit但非常有趣:CSS Animations

答案 18 :(得分:6)

我从未想过使用css'border'属性我可以制作不同形状的三角形。这是链接,

(编辑) 以下链接不再起作用。 http://www.dinnermint.org/blog/css/creating-triangles-in-css/

从现在开始,您可以尝试以下方式, http://jonrohan.me/guide/css/creating-triangles-in-css/

答案 19 :(得分:6)

并非真正“隐藏”,但理解盒子模型和定位模型将有很大帮助。

就像知道position: absolute元素相对于第一个使用position: relative设置样式的父元素一样定位。

答案 20 :(得分:5)

使用css可以轻松完成自动换行,无需服务器端技术的帮助。

word-wrap: break-word;

答案 21 :(得分:3)

跨浏览器(IE6 +,FF,Safari)float替代方案:

.inline-block {
    display: inline-block;
    display: -moz-inline-box;
    -moz-box-orient: vertical;
    vertical-align: top;
    zoom: 1;
    *display: inline; }

答案 22 :(得分:3)

跨浏览器内联块使用组合声明在块和内联元素上工作:

.column { 
-moz-inline-box; -moz-box-orient:vertical; display:inline-block; vertical-align:top; 
} 

适用于标准浏览器,包括Firefox 2,以及:

.ie_lte7 .column { display:inline; } 

答案 23 :(得分:3)

另一个IE6选择器

* html .something
{
  color:red;
}

修复随机IE6渲染错误 - 应用zoom:1将触发layout

答案 24 :(得分:2)

我不知道这是否是一个隐藏的功能,但我只是惊叹于此: http://www.romancortes.com/blog/css-3d-meninas/

答案 25 :(得分:1)

.class {
/* red for chrome, ff, safari, opera */
background-color: red;
/* green for IE6 */
.background-color: green;
/* blue for IE7+ */
_background-color: blue;
}

将呈现您的&lt; whatever&gt;这些浏览器类别中的背景不同

答案 26 :(得分:0)

border-radius内容是CSS3规范的一部分。由于CSS3还没有完全完成,同时更先进的浏览器用它们自己的属性(-moz,-webkit)实现它的一部分。所以我们已经可以享受圆角,用纯净的css清晰编码。

不幸的是,浏览器市场中的其他大玩家仍然没有表现出实施css3功能的迹象。