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] это установить "границы стиля 'либо пунктирных или точечных
Вот и все! Это всего лишь еще один способ использования границ для достижения изображение менее дизайн.
Дальнейшее чтение
Доля и расширить: Закладка с del.icio.us | Digg это! | Reddit!
8 Комментариев »
RSS-лента комментариев к этой записи.
Оставить комментарий

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


Отлично! А как же Opera?
Комментарий от Cuprum - 9 марта 2011 #
@ Cuprum
Оперы появляется теряются текста. Собираем либо выше содержание поле, если высота строки устанавливается в 0 или ниже его, если высота строки не обнуляется.
Кто-то должен об ошибке ;-)
В качестве побочного сведению, я часто может сделать все это работает во всех браузерах (включая IE6), но я врезался в стену с Opera.
Этот браузер на самом деле боль. Это вопросы, но мы не можем это исправить, как и мы с IE6 / 7 (поскольку мы не можем целевой версии). Кроме того, оно не имеет большого рынка так почему мы должны тратить время?
Благодарим Вас за отзыв
Комментарий от Тьерри Кобленц - 9 марта 2011 #
Кажется, что опера не нравится нулевой линии высоты. Я заменить высоту строки в 0,1 которая, кажется, исправить Opera. AFAICT это влияет только на IE 8, который легче исправить, чем опера, мне кажется.
Сердечно, Дэвид
Комментарий Дэвидом Hucklesby - 14 марта 2011 #
Привет Давиду,
Это большая находка, большое спасибо за разделение.
Комментарий от Тьерри Кобленц - 15 марта 2011 #
Хороший пост, но остановить крепления для IE6.
Комментарий от Mike - 16 марта 2011 #
Привет Давиду,
Что это строительство средств (от вашего класса ul.two):
дисплей: встроенный блок;
* Дисплей: встроенный;
Мне любопытно, звезда ключевых слов ... Спасибо!
Комментарий от Павел - 17 марта 2011 #
Привет Павел,
В этих правилах, Есть два различных фильтров 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 #
Я нашел ошибку рендеринга с треугольниками CSS, что я не нашел упомянутые в других местах. Firefox 4 на XP получает странно.
Вот демо: http://zevbrokeit.posterous.com/nubs-problem
Есть ли у вас какие-нибудь предложения?
Комментарий от Зев Голдберг - 24 марта 2011 #