Вы можете добавить второй вход, как и первый, и объединить его после:
Два основных движка рендеринга уже давно поддерживают CSS3, что делает закругленные углы такими простыми, как:
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
Конечно, это не оказывает никакого влияния на IE6 или 7 (это работает в IE8) или 8, поэтому вам нужно реализовать мерзкое разделение по стопкам с изображениями для углов, что не соответствует вашей семантике требование.
Я не фанат экранных хаков, которые включают в себя javascript или css-хаки - поэтому я использую CSS3 и проверяю, что квадратная версия в IE7 выглядит приемлемой. Я делал это некоторое время, так как IE никогда раньше не поддерживал прозрачность PNG - это означало, что вы не можете красиво наложить закругленное угловое изображение на узорчатый фон. IE8 - большое улучшение, поэтому проблема начинает исчезать, но я понимаю ваше желание заставить его работать на IE6 и выше.
ОБНОВЛЕНИЕ: Различные фрагменты CSS3, которые изначально планировалось включить в IE8, были фактически удалены из финальной версии. пограничный радиус был одной из жертв.
You could use the technique described here (it's for an Apple Dashboard Widget, but the HTML/CSS should be the same). It uses nine images and doesn't require any JavaScript.
Steve
Это должно позволить вам получить желаемый результат. Старый сложенный метод DIVs с одним большим фоновым изображением. Вам нужно создать очень большое фоновое изображение, например 2000 x 2000 пикселей, где вы будете рисовать прямоугольник с закругленными углами. Я рекомендую сохранить его в формате .GIF с прозрачным фоном, чтобы обеспечить совместимость с IE6, так как вы хотите избежать JavaScript. Обратите внимание, что границы в этом примере просто помогают понять, где элемент появляется и могут быть удалены.
Я протестировал его на IE6, IE7, Firefox 2 и 3, Safari и Opera. Надеюсь, это поможет.
<html>
<head>
<style type="text/css">
.RoundRectInside
{
width: 100%;
background: url(BigBackground.gif) top left no-repeat;
overflow: hidden;
}
.RoundRectOutside
{
width: 20em;
height: 20em;
background: url(BigBackground.gif) bottom left no-repeat;
overflow: hidden;
position: relative;
}
.RoundRectTopRight
{
float: right;
/* Width and Height should correspond to width and height of rounded corner */
width: 30px;
height: 30px;
background: url(BigBackground.gif) top right no-repeat;
overflow: hidden;
position: absolute;
top: 0;
right: 0;
}
.RoundRectBottomRight
{
float: right;
/* Width and Height should correspond to width and height of rounded corner */
width: 30px;
height: 30px;
background: url(BigBackground.gif) bottom right no-repeat;
overflow: hidden;
position: absolute;
bottom: 0;
right: 0;
}
</style>
</head>
<body>
<div class="RoundRectOutside">
<div class="RoundRectInside">
<div>Content goes here</div>
<div class="RoundRectTopRight"></div>
</div>
<div class="RoundRectBottomRight"></div>
</div>
</body>
</html>
Короткий ответ: вы не можете делать все, что хотите, без CSS3, который не реализован ни в одной, кроме последних версий браузеров.
Итак, ответ - либо использовать CSS3 (как описано выше у Sohnee), либо научиться любить решения javascript / divs / images. И убедитесь, что он отображается нормально, когда браузер, в котором нет ни одного из них, смотрит на него ...
Я не знаю, что вы подразумеваете под семантическими или растягиваемыми закругленными углами, но вы можете использовать атрибуты CSS border-radius для Webkit и Firefox, и просто использовать комбинацию изображений PNG и этот HTML-компонент , который добавляет поддержку альфа-канала PNG в IE6.
Если вы используете PNG8 с альфа-прозрачностью, изображения могут иметь прозрачность в IE6. Предостережения заключаются в том, что вы можете иметь только полностью прозрачные или непрозрачные изображения (все, что между ними будет просто визуализировано на 100% прозрачно), и что вы не можете использовать большую цветовую палитру или градиенты.
В зависимости от вашей конструкции возможен обходной путь, или вы можете использовать его вместе с опцией PNG8 выше. Если ваш фон простой, вы можете просто сопоставить что-либо вне углов с фоном. Используя эту технику, вы можете легко обойтись с одним изображением для ваших углов, если вы используете спрайты. Разметка будет выглядеть примерно так:
<div id="content">
<span class="lt"></span>
<span class="rt"></span>
<span class="lb"></span>
<span class="rb"></span>
</div>
И CSS:
#content {position:relative;}
/*These styles are generic and can be reused over multiple corner types*/
.lt, .rt, .lb, .rb{
background:url(../images/button_corners.png) no-repeat;
width:5px;
height:5px;
position:absolute;
}
.lt, .rt{top:0px;}
.rt, .rb{right:0px;}
.lt, .lb{left:0px;}
.rb, .lb{bottom:0px;}
/*The following would be used specifically for #content, but you could reuse a different part of the same image for a different container or button */
#content .lt{background-position:-200px 0px;}
#content .rt{background-position:-245px 0px;}
#content .lb{background-position:-200px -45px;}
#content .rb{background-position:-245px -45px;}
У этого подхода есть свои преимущества и недостатки:
Преимущества
Это кросс-браузер, он работает с жидкими и фиксированными макетами, и вы можете использовать его для элементов меню (hover будет работать в IE6 для ссылок) или контейнеров, для него не требуется JavaScript , а с помощью спрайта CSS вы можете сделать это с одним изображением, даже с несколькими типами углов.
Недостатки
Он не будет работать с каждым макетом, границы могут быть хитрыми или уродливыми, он добавляет несколько дополнительных элементов в разметку, и если вы используете его для элемента ссылки с эффектом наведения, IE6 имеет зависание мерцание, которое может быть решено только с небольшим количеством JavaScript. Тем не менее, этот JavaScript является только одной строкой и может быть включен в условный комментарий:
<script type="text/javascript">document.execCommand("BackgroundImageCache",false,true);</script>
Это лучшее, что я нашел до сих пор.
http://apptools.com/examples/oundedbox.php
Это кросс-браузер, W3C действителен и использует только одно изображение . но мы не можем сделать границу с этим.
Это решение для фиксированной ширины с границей.
используется небольшая разметка Содержание
` с действительным CSS, HTML http://www.askthecssguy.com/examples/tained/ornCorners/index.html
Если вы не Не возражая против использования Javascript только для IE, вы можете использовать условные комментарии и Javascript для динамической вставки округлостей VML, которые могут делать то, что вы хотите (или просто использовать статический условно закомментированный VML). CSS3 радиус границы охватывает Gecko, WebKit и KHTML. Opera требует фоновое изображение SVG.
Вот пример, взятый из одного из моих проектов: http://entr0py.org/misc/reader/basic/
Мне сказали, что в нем все еще есть некоторые ошибки WebKit. относится к окраске фона, но во всем остальном работает нормально.
Я уверен, что метод минимального округления углов без js для ie6 / 7 требует 2 маленьких изображения (верх и низ ) и 1 дополнительный div для блоков фиксированной ширины и 3 небольших изображения (внизу, слева и справа) и 3 дополнительных div для блока переменной ширины.
Фиксированная ширина
<div class="box">
<div class="bottom">
gjkgjk
</div>
</div>
.box {background:url(image to round off the top) top left no-repeat:padding:0;}
.box .bottom {background:url(image to round off the bottom) bottom left no-repeat:margin:0;width:100px}
Переменная ширина
<div class="box">
<div class="top-right">
<div class="bottom-left">
<div class="bottom-right">
gjkgjk
</div>
</div>
</div>
</div>
.box {background:url(image to round off the top-left) top left no-repeat:padding:0;}
.box .right{background:url(image to round off the top-right) top right no-repeat:padding:0;margin:0;}
.box .bottom-left {background:url(image to round off the bottom-left) bottom left no-repeat:margin:0;padding:0;}
.box .bottom-right {background:url(image to round off the bottom-right) bottom right no-repeat:margin:0;padding:0;}
Если вы хотите скругленную границу вместо простого округленного сплошного фона вышеупомянутое можно настроить с помощью рамки, отрицательного поля, относительного / абсолютного положения, ширины и положения фонового изображения, чтобы оно работало, но не могу вспомнить, как это происходит.
Привет, мне недавно пришлось преодолеть ту же проблему: виджет изменяемого размера с закругленными углами, внутренней границей, тенью и градиентным фоном. Он также должен работать во всех браузерах (включая IE6).
Предполагая, что вы используете Photoshop и должным образом заботитесь о своих исходных файлах, это довольно просто. Всего требуется 4 изображения (до 7 в зависимости от того, как вы поддерживаете IE6), все они могут быть вырезаны из исходного файла фотошопа, поэтому это довольно просто.
Посмотрите ссылку ниже.
http: // thatguynamedandy .com / blog / css-widget-round-corner-gradient-drop-shadow