box-shadow на IE9 не отображает с помощью правильного CSS, работает на Firefox, Chrome
Я пытаюсь имитировать плавающий модальный тип коробки, но у меня проблема с IE9 и его теневой реализацией коробки.
вот краткое описание кода, который я использую, который может дублировать проблему:
<html>
<head>
<title>Sample page</title>
<style>
.content-holder {
border-collapse: collapse;
}
.back {
background-color: #a8c0ff;
padding: 100px;
}
.inner {
background-color: #fff;
text-align: center;
padding: 50px;
box-shadow: 0px 0px 20px #000;
}
</style>
</head>
<body>
<table class="content-holder">
<tr>
<td>
<div class="back">
<div class="inner">
<h2>Heading</h2>
<p class="subtext">Some text here</p>
<p>More text</p>
<a class="button" href="#">A button</a>
</div>
</div>
</td>
</tr>
</table>
</body>
Он отлично работает в Firefox/Chrome и т. д., Но IE9 не отображаются тени. Я могу изменить его на встроенную тень, и он выглядит так, как должен, но внешняя тень продолжает ускользать от меня.
кто-нибудь там в состоянии пролить некоторые пролить свет на эту теневую проблему?
11 ответов:
как обнаружен (не мной) в комментариях, вы должны добавить
border-collapse: separate;в элементbox-shadowне работает.и из моего первоначального ответа, также убедитесь, что у вас есть действительный doctype как самая первая строка, например
<!DOCTYPE html>. Нажмите F12, чтобы открыть инструменты разработчика, и убедитесь, что используется режим IE9 (или более поздняя версия), потому что он необходим дляbox-shadowна работу.
просто подтверждаю этот вопрос и 2-й передоза окончательное решение @Arowin с момента его мог пропустить некоторые люди - добавить
border-collapse:separate;пострадавшему<div>- IE9 теперь показывает правильную тень, когда a<div>содержится в<table>Сborder-collapse:collapse;set. Спасибо!
IE9 input box-shadow bug solution будет работать над этой ошибкой.
input{ box-shadow: 0px 0px 5px #3699FF; border-collapse: separate; }
border-collapse: separate;что нужно добавить, чтобы решить эту проблему на столах.
У меня была такая же проблема. На самом деле IE9 не требует никакого doctype для этих стилей для работы. Что вызывает проблему "border-collapse:collapse" на таблицах с теневым использованием cellspacing=0, тогда он работает-все еще: bugger IE
The border-collapse: separate;только частично решил это для меня. У нас есть цвет фона, добавленный в строки (tr) и тень под выбранной строкой (и развернутой).цвет фона блокирует тень, поскольку это, кажется, проблема типа z-индекса. В любом случае мы решили его со значением rgba для цвета. Мы выбираем более темный цвет строки и используем 20% для Альфа-значения, чтобы тень underneat могла быть показана.
table { border-collapse: separate;} tr:nth-child(even) { /* odd color transparent */ /* background-color: someothercolor; */ /*shadow did not display thru solid color */ background-color: rgba(168,163,136,.2); }
в моем случае IE 9 отображал документ в режиме совместимости, хотя у меня был действительный
DOCTYPE. Я отлаживал локально, и IE имеет параметр "отображать сайты интрасети в режиме совместимости", который был включен, по-видимому, по умолчанию. После отключения этого, все работает, как ожидалось. Это можно найти в разделе Сервис - > Параметры просмотра совместимости.
в моем случае ничего не помогало. После нескольких часов отладки я обнаружил, что проблема заключалась в следующем метатеге:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
Да, если вы выполняете сброс для нескольких html-элементов в вашем css, например (я сам просто копирую и вставляю материал из старых проектов, никогда не думая о последствиях :D):
html, div, span, h1, h2, h3, h4, h5, h6, p, blockquote, a, img, dl, dt, dd, ol, ul, li, legend, table, tbody, tr, th, td { order:0; outline:0; font-weight:inherit; font-style:inherit; font-size:100%; font-family:inherit; border-spacing: 0; border-collapse: collapse; }хорошо... вырезать, что
оттуда и добавить его как отдельныйborder-collapse: collapsetable, tbody, tr, th, td { border-collapse: collapse; }... таким образом, он не применяется к вашему div, p, span, img или везде, где вам нужна тень.
У меня был div, который был внутри ячейки таблицы. Используя
border-collapse:separateна div решил проблему для меня.
в моем случае помогло переключение с переходного на строгий XHTML-doctype.
удаление границы-свернуть из контейнера-таблицы также помогло.
этот мета-тег решил это для меня. Он также решил другие странные проблемы IE, которые не происходят в Chrome и Firefox:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Comments