Можно ли дать одному элементу две разные границы?

Я просмотрел это и все, что я не мог найти ответ, который я искал вообще. У меня есть несколько div на моей веб-странице, и все они имеют сплошную черную рамку толщиной 1 пиксель. За исключением двух div с определенными идентификаторами. у них есть граница другого цвета, которая составляет 10 пикселей, но я хотел бы окружить ее рамкой сплошного черного цвета в 1 пиксель. Какие-либо предложения? Все мои div созданы с помощью javascript.


person Vince    schedule 09.04.2013    source источник


Ответы (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 */  
}
person Charlie Gorichanaz    schedule 09.04.2013
comment
Это действительно хорошая ссылка! Было бы здорово, если бы вы также добавили часть этой информации сюда на случай, если ссылка изменится. - person Yisela; 10.04.2013
comment
Конечно, я не решаюсь посягать на этот ресурс, так как трудно перефразировать и без того краткие примеры, но, надеюсь, я достаточно ясно дал понять, что работа не моя. ^_^ - person Charlie Gorichanaz; 11.04.2013

Не совсем двойная граница, но вы можете задать границу как тень блока, что может дать вам желаемый эффект.

person amit mishra    schedule 10.04.2013