Скрытые возможности CSS

Я определенно подобрал несколько полезных советов по вопросам стиля скрытых функций, касающихся 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 ответов

Вы можете отобразить документ title элемент:

head, title {
    display: block;
}

Применить несколько стилей / классов к элементу, как это 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>

Мне очень нравятся CSS-спрайты.

Вместо того, чтобы иметь 20 изображений для всех кнопок и логотипов вашего сайта (и, следовательно, 20 HTTP-запросов с задержкой вокруг каждого), вы просто используете одно изображение и размещаете его каждый раз, чтобы был виден только нужный вам бит.

Трудно опубликовать пример, так как вам нужно увидеть изображение компонента и CSS размещения - но я написал в блоге об использовании Google здесь: http://www.stevefenton.co.uk/Content/Blog/Date/200905/Blog/Google-Uses-Image-Sprites/

Дело в том, что floatесли родительский элемент будет расширяться, чтобы содержать все его floatЭд детей.

Возможно отрицательные поля и элементы с абсолютным позиционированием в элементах с относительным позиционированием.

Посмотрите, как бы вы сделали это с помощью CSS? Например.

Вы можете установить переменную ширину для абсолютно позиционированного элемента, указав оба left а также right свойства. Это дает вам больше контроля, чем просто настройка 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;
}

Взгляните на CSS Преобразования Webkit, например -webkit-transform: rotate(9deg);

образец

Не совсем особенность, но тем не менее полезная: дочерний селектор работает во всех браузерах, кроме 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>

Вот список селекторов (для CSS2) и таблица совместимости браузера.

На прошлой неделе я обнаружил удивительно полезное свойство CSS, о котором я никогда не слышал:

text-rendering: optimizeLegibility;

Safari, Chrome и Firefox все понимают это свойство, и когда они установлены, включите расширенный кернинг и лигатуры. Вот отличная демонстрация.

Мои из них:

  • все свойства слуховых листов, как azimuth, pitch...
  • некоторые свойства модуля печати, такие как page-break-after: avoid;
  • counter-increment: section 1;
  • border-collapse: collapse;
  • background-color: transparent;
  • outline: 1px solid...

Прозрачный PNG в IE6 Это исправляет прозрачность PNG в IE6. Установите фон в non и включите изображение в фильтр. Нет необходимости в любом 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 для 100% высоты в IE6

* html .move{
   height:100%;
}

Разрешить разбивать и переносить длинные слова на следующую строку - CSS3 Cross browser

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

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

Shorthands

До

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 ;    

Вы можете создавать области прокрутки, не прибегая к кадрам, используя свойство переполнения CSS. Пример:

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

overflow: auto означает, что если содержимое не может поместиться в div, горизонтальные и / или вертикальные полосы прокрутки будут отображаться по мере необходимости.

overflow: scroll означает, что обе полосы прокрутки будут присутствовать всегда. Если вы хотите, чтобы всегда присутствовала только одна полоса прокрутки, используйте overflow-x или же overflow-y (которые поддерживаются современными браузерами и IE6).

Некоторые из вас могут думать "дууух", но я с удивлением узнал, что области прокрутки можно создавать без рамок.

Псевдоэлементы :before и :after

Следующее правило заставляет строку "Глава: " генерироваться перед каждым элементом H1:

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

Для получения дополнительной информации http://www.w3.org/TR/CSS2/generate.html

Встроенные назначения @media:

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

Так что вы можете избавиться от другого HTTP-запроса.

Встроенные блоки (альтернатива плавающим элементам div):

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

Не применяйте этот класс к div! это не сработает! применить его к диапазону (или встроенному элементу)

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

Мы можем отобразить тег стиля как элемент блока и динамически редактировать CSS с помощью атрибута contenteditable HTML5. Демо Здесь.

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

       </style>
   </body>

Кредиты: CSS-хитрости

Я никогда не думал, что используя свойство css 'border', я могу сделать треугольник различной формы. Вот ссылка, чтобы пойти,

(редактировать) Следующая ссылка больше не работает. http://www.dinnermint.org/blog/css/creating-triangles-in-css/

Теперь вы можете попробовать следующее: http://jonrohan.me/guide/css/creating-triangles-in-css/

В настоящее время только для WebKit, но довольно интересно: CSS-анимация

Не совсем "скрытый", но понимание модели бокса и модели позиционирования очень поможет.

Мол, зная, что position: absolute элемент позиционируется относительно своего первого родителя, который имеет стиль position: relative,

Перенос слов можно легко выполнить с помощью css, без какой-либо помощи серверной технологии.

word-wrap: break-word;

Кросс-браузер (IE6+, FF, Safari) float альтернатива:

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

Кросс-браузерный inline-block работает с блочными и встроенными элементами, используя комбинированные объявления:

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

для стандартных браузеров, включая Firefox 2, и:

.ie_lte7 .column { display:inline; } 

Другой селектор IE6

* html .something
{
  color:red;
}

Исправление случайных ошибок рендеринга в IE6 - примените zoom:1, чтобы активировать макет.

Я понятия не имею, является ли это скрытой функцией, но я просто удивилась, увидев это: http://www.romancortes.com/blog/css-3d-meninas/

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

сделает ваш <любой> фон другим в этих категориях браузера

Материал border-radius является частью спецификации CSS3. Поскольку CSS3 все еще не закончен, более прогрессивные браузеры тем временем реализуют его части со своими собственными свойствами (-moz, -webkit). Таким образом, мы уже можем наслаждаться закругленными углами, чисто закодированными в чистом CSS.

К сожалению, другой крупный игрок на рынке браузеров по-прежнему не проявляет никаких признаков реализации функций css3.

Другие вопросы по тегам