CSS пограничной Трюки с Сложено Коробки

8 марта 2011 в 3:23 вечера Тьерри Кобленц | В CSS 101 , дизайна , развития | 8 Комментариев

Эти приемы помогут вам в достижении конструкций, не прибегая к использованию изображений, CSS3 градиент или посторонних разметки. По рушится ящиков с нулевой line-height и height значений, мы можем отображать содержимое за пределы содержания окна, через границы.

Би-цвет фона

Этот пример не включает в себя IE 6 / 7 обходные пути (проверьте исходный код этой демонстрационную страницу для IE, исправления).

Би-цвет фона экрана
 .parent { display:inline-block; text-align: center; border: 1px solid #cecece; } .child { display:inline-block; line-height: 0; height: 0; border-top: 1em solid #ffc; border-bottom: 1em solid #fdcf46; padding:0 .6em; vertical-align:bottom; } <ul id="menuBar-A"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> <li><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> 

Точки и труб между элементами списка

Этот пример показывает, должным образом во всех браузерах после несложных исправления IE.

Точки и труб скриншот
 ul.one, ul.two { margin-left:0; display:inline-block; *display:inline; zoom:1; height:12px; line-height:12px; padding:0; } li { float:left; display:inline; height:2px; line-height:2px; position:relative; top:.3em; } ul.two {border-left:1px solid #333;} ul.one li {border-left:2px solid #333;} ul.two li {border-right:2px solid #333;} ul.one li.first-child, ul.two li.last-child { border:0; } a { color:#000; padding:.4em .9em; *position:relative; } <div id="menuBar-B"> <ul class="us"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> </ul> <ul class="ourOffer"> <li class="services"><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> </div> 

Левый и правый указывая треугольников

Этот пример не включает в себя IE 6 / 7 обходные пути (проверьте исходный код этой демонстрационную страницу для IE, исправления).

Левый и правый указывая треугольников скриншот
 #box { line-height: 0; height: 0; border: .4em solid transparent; border-left-color: #333; border-right-color: #333; padding: 0 .3em; display: inline-block; } <ul id="menuBar-C"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> <li><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> 

IE 6 и пограничные прозрачности

IE 6 не поддерживает ключевое слово " transparent "для цвета границы. При использовании этого значения, IE 6 рисует черной рамкой.

Исправить это является использование цветовой фильтр , который отображает определенный цвет содержания объекта, как прозрачные. Например, чтобы создать правую стрелку, вы можете использовать это правило:

 #Box { height: 0; width: 0; border: 10px solid transparent; font-size: 0; _border-color: pink; _filter: chroma(color="pink"); border-left-color: #333; } 

Размер шрифта декларации другой обходной путь для IE 6. Это, чтобы убедиться, этот браузер не увеличивает высоту окна.

Стоп прессы я только что узнал новый трюк (спасибо Chungho Fang)!:

Магия [создать границы прозрачности в IE] это установить "границы стиля 'либо пунктирных или точечных


Вот и все! Это всего лишь еще один способ использования границ для достижения изображение менее дизайн.

Дальнейшее чтение

Об авторе: Тьерри Кобленц является интерфейсные инженером в Yahoo!
Он владеет TJK Дизайн , эз-css.org и CSS-101.org . Вы можете следить за Тьерри на Твиттере @ thierrykoblentz .

Доля и расширить: Закладка с del.icio.us | Digg это! | Reddit!

8 Комментариев »

RSS-лента комментариев к этой записи.

  1. Отлично! А как же Opera?

    Комментарий от Cuprum - 9 марта 2011 #

  2. @ Cuprum

    Оперы появляется теряются текста. Собираем либо выше содержание поле, если высота строки устанавливается в 0 или ниже его, если высота строки не обнуляется.

    Кто-то должен об ошибке ;-)

    В качестве побочного сведению, я часто может сделать все это работает во всех браузерах (включая IE6), но я врезался в стену с Opera.
    Этот браузер на самом деле боль. Это вопросы, но мы не можем это исправить, как и мы с IE6 / 7 (поскольку мы не можем целевой версии). Кроме того, оно не имеет большого рынка так почему мы должны тратить время?

    Благодарим Вас за отзыв

    Комментарий от Тьерри Кобленц - 9 марта 2011 #

  3. Кажется, что опера не нравится нулевой линии высоты. Я заменить высоту строки в 0,1 которая, кажется, исправить Opera. AFAICT это влияет только на IE 8, который легче исправить, чем опера, мне кажется.
    Сердечно, Дэвид

    Комментарий Дэвидом Hucklesby - 14 марта 2011 #

  4. Привет Давиду,

    Это большая находка, большое спасибо за разделение.

    Комментарий от Тьерри Кобленц - 15 марта 2011 #

  5. Хороший пост, но остановить крепления для IE6.

    Комментарий от Mike - 16 марта 2011 #

  6. Привет Давиду,

    Что это строительство средств (от вашего класса ul.two):

    дисплей: встроенный блок;
    * Дисплей: встроенный;

    Мне любопытно, звезда ключевых слов ... Спасибо!

    Комментарий от Павел - 17 марта 2011 #

  7. Привет Павел,

    В этих правилах, Есть два различных фильтров CSS (CSS хаки), один называется рубить звездочном отеле, другой называется подчеркивания собственности рубить.

    Они работают так:

    *property:value; /* IE5/6/7 see this */
    _property:value; /* IE5/6 see this */

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

    Вы можете попробовать это:

    color:blue; /* blue in all browsers */
    *color:yellow; /* switching to yellow for IE less than 8 */
    _color:green; /* switching to green for IE less than 7 */

    Отметим, что эти хаки надежными, но CSS валидатор будет помечать их как ошибки (потому что это не правильный синтаксис CSS).

    Комментарий от Тьерри Кобленц - 17 марта 2011 #

  8. Я нашел ошибку рендеринга с треугольниками CSS, что я не нашел упомянутые в других местах. Firefox 4 на XP получает странно.

    Вот демо: http://zevbrokeit.posterous.com/nubs-problem

    Есть ли у вас какие-нибудь предложения?

    Комментарий от Зев Голдберг - 24 марта 2011 #

Оставить комментарий

Примечание: Комментарии модерируются для новичков. Спам удаляется.

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Хостинг в Yahoo!

Copyright © 2006-2011 ООО Yahoo! Все права защищены. Политика конфиденциальности - Условия предоставления услуг

Работает на WordPress на Yahoo! Веб-хостинг .