Кажется, я не могу заставить IE9 отображать набор полей с закругленными углами, в то время как другие браузеры это делают. Кто-нибудь тоже сталкивался с этим?
IE9 fieldset с закругленными углами
Ответы (9)
Это происходит, только если вы используете <fieldset>
с <legend>
- без него углы отображаются нормально.
Вы можете исправить эту ошибку, применив display:inline
или display:inline-block
к вашему <legend>
элементу, но тогда вам придется переставить его на место, установив position:relative
и перемещая его.
В зависимости от стиля вашей легенды (с фоном она будет выглядеть так же - без фона граница fieldset по-прежнему будет видна за буквами) вы можете сделать ее похожей на то, как в других обычных браузерах.
display: inline-block; position relative; height: 30px; top: -15px;
- person Ben; 02.08.2012
<legend>
stackoverflow.com/a/17406564/132599
- person David Clarke; 28.03.2014
Исходя из моего опыта работы с последней версией IE9, я не могу получить набор полей с легендой, чтобы иметь радиус. У меня не было проблем с другими границами в IE9, css3 border-radius отлично работает, просто fieldset / ledgend. Я все еще ломаю голову над этим.
Я тоже использовал fieldset и не только для форм, но постоянные удары по совместимости заставили меня сбросить их. Лучше написать свои собственные классы CSS DIV, имитирующие набор полей. Используя CSS, вы можете получить точную копию того, как выглядит набор полей, и у вас будет намного больше гибкости и совместимости.
он работает только в последней сборке rc, не работает в бета-версии IE9, попробуйте
.class {
border-radius-right-bottom: 15px;
}
Это все еще проблема в IE11 при использовании легенды, и решение находится в этой теме:
Закругленные углы в наборе полей
fieldset {
margin:20px;
padding:0 10px 10px;
border:1px solid #666;
border-radius:8px;
box-shadow:0 0 10px #666;
padding-top:10px;
}
legend {
padding:2px 4px;
background:#fff;
}
fieldset > legend {
float:left;
margin-top:-20px;
}
fieldset > legend + * {
clear:both;
}
http://www.456bereastreet.com/archive/201302/fieldset_legend_border-radius_and_box-shadow/
Вы можете добавить следующий метатег:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Рендеринг Fieldset всегда чреват проблемами с рендерингом и особенно с печатью. Неудивительно, что это не работает.
Стандартный обходной путь - добавить еще один контейнер и стилизовать его.
Чтобы IE9 использовал закругленные углы (CSS 3), вам нужно добавить это в заголовок HTML:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Затем используйте CSS как обычно: border-radius-right-bottom:15px;
У меня была такая же проблема, и это исправило.
border-radius
по умолчанию. Если вам нужно это использовать, это означает, что в ваших настройках есть что-то, что заставляет его переключаться в режим совместимости с IE8. Вы можете проверить настройки. Если вы все же воспользуетесь этой техникой, то сможете обойтись всего лишь IE=Edge
; остальные не имеют значения, поскольку ни один другой браузер в любом случае не распознает X-UA-Compatible
, и даже если бы они это сделали, зачем вам заставлять их использовать данный номер версии (здесь вы исправляете причуду в IE, а не в Firefox).
- person Spudley; 24.01.2011
У меня был доступ только к файлу CSS, поэтому я не мог вносить никаких изменений в HTML, поэтому я сделал взлом CSS для IE.
Структура HTML была:
<form>
<fieldset>
...form content...
</fieldset>
</form>
Весь CSS для всех браузеров и с взломом IE:
fieldset {
border-radius: 20px;
border: 1px #3D3D3D solid;
}
@media screen and (min-width:0\0) {
form {
border: 1px #3D3D3D solid;
border-radius: 20px;
}
fieldset {
border: 0 none;
margin-top: 1px;
margin-bottom: 1px;
}
}
Конечно, если на вашем сайте другая html-структура, это не сработает. Поэтому вместо "формы" вы можете применить в css к родительскому div вашего набора полей.