Я просмотрел это и все, что я не мог найти ответ, который я искал вообще. У меня есть несколько div на моей веб-странице, и все они имеют сплошную черную рамку толщиной 1 пиксель. За исключением двух div с определенными идентификаторами. у них есть граница другого цвета, которая составляет 10 пикселей, но я хотел бы окружить ее рамкой сплошного черного цвета в 1 пиксель. Какие-либо предложения? Все мои div созданы с помощью javascript.
Можно ли дать одному элементу две разные границы?
Ответы (2)
Единственный надежный метод во всех браузерах — это использование дополнительного контейнера DIV
и применение границы к нему, а также к внутреннему контейнеру DIV
.
Некоторые другие методы, работающие во многих браузерах, подробно описаны Луи Лазарисом на странице http://www.impressivewebs.com/multiple-borders-css/
Кратко о методах Лазариса
Граница и контур
Поддержка: все, кроме IE6/7
Примечание. outline
не влияет на поток элементов вокруг него, поэтому он будет перекрывать или подкрывать другие элементы.
.one {
border: solid 6px #fff;
outline: solid 6px #888;
}
Псевдоэлемент
Примечание. min-height
поддерживает плавность по вертикали.
.two {
border: solid 6px #fff;
position: relative;
z-index: 1;
}
.two:before {
content: "";
display: block;
position: absolute;
top: -12px;
left: -12px;
border: solid 6px #888;
width: 312px;
padding-bottom: 12px;
min-height: 100%;
z-index: 10;
}
Коробчатая тень
Примечание: box-shadow
также не влияет на поток элементов вокруг него.
Я использую две тени (разделенные запятыми), и я установил параметры смещения и размытия на ноль, при этом задав каждой тени соответствующий размер. Поскольку одна тень перекрывает другую, вторая тень в два раза больше другой. Ключевыми моментами являются отсутствие размытия и полностью непрозрачный цвет. Это дает каждой тени прямой край, как границу.
.three {
box-shadow: 0 0 0 6px #fff, 0 0 0 12px #888;
}
Дополнительный ‹div›
Поддержка: Все браузеры
.four {
border: solid 6px #888;
background: #fff;
width: 312px;
min-height: 312px;
}
.four div {
width: 300px;
min-height: 300px;
background: #222;
margin: 6px auto;
overflow: hidden;
}
Изображение границы
.five {
border-width: 12px;
-webkit-border-image: url(multiple-borders.gif) 12 12 12 12 repeat;
-moz-border-image: url(multiple-borders.gif) 12 12 12 12 repeat;
border-image: url(multiple-borders) 12 12 12 12 repeat; /* for Opera */
}
Не совсем двойная граница, но вы можете задать границу как тень блока, что может дать вам желаемый эффект.