Відповіді:
Так: використовувати outline
властивість; він діє як друга межа за межами вашого кордону. Остерігайтеся, адже він може хитро взаємодіяти з полями, прокладками та тінями. У деяких браузерах вам, можливо, доведеться використовувати префікс для певного браузера; для того, щоб переконатися, що він його підхоплює: -webkit-outline
і тому подібне (хоча, зокрема, WebKit цього не вимагає).
Це також може бути корисно у випадку, коли ви хочете викинути контур для певних браузерів (наприклад, якщо ви хочете поєднати контур із тінню; у WebKit контур знаходиться всередині тіні; у FireFox це зовні, тому -moz-outline: 0
корисно переконатися, що ви не отримаєте вузької лінії навколо вашої красивої тіні CSS).
.someclass {
border: 1px solid blue;
outline: 1px solid darkblue;
}
Редагувати: Деякі люди зауважували, що outline
не вдається з IE <8. Хоча це правда; підтримка IE <8 насправді не те, що ви повинні робити.
outline
існує з CSS2.
outline
є менш універсальним, ніж border
. Зокрема, W3C говорить : "Примітка. Контур з усіх боків однаковий. На відміну від меж, тут немає властивості" outline-top "або" outline-left " . (Наголос на моєму.)
Це дуже можливо. Потрібна лише невелика хитрість CSS!
div.border {
border: 1px solid #000;
position: relative;
}
div.border:before {
position: absolute;
display: block;
content: '';
border: 1px solid red;
height: 100%;
width: 100%;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
<div class="border">Hi I have two border colors<br />I am also Fluid</div>
Це те, що ви шукаєте?
border-radius
, спробуйте зменшити радіус внутрішньої межі на один піксель, що зробить розрив між двома округлими межами майже непомітним.
bottom:1px
а не height:100%
працювало для мене краще лише для нижньої межі :)
Інший спосіб - використовувати box-shadow
:
#mybox {
box-shadow:
0 0 0 1px #CCC,
0 0 0 2px #888,
0 0 0 3px #444,
0 0 0 4px #000;
-moz-box-shadow:
0 0 0 1px #CCC,
0 0 0 2px #888,
0 0 0 3px #444,
0 0 0 4px #000;
-webkit-shadow:
0 0 0 1px #CCC,
0 0 0 2px #888,
0 0 0 3px #444,
0 0 0 4px #000;
}
<div id="mybox">ABC</div>
Дивіться приклад тут.
Ви пробували різні стилі меж, доступні в специфікації CSS? Уже є два стилі меж, які можуть задовольнити ваші потреби:
border-style: ridge;
Або
border-style: groove;
Контур хороший, але лише тоді, коли ви хочете, щоб кордон був навколо.
Скажімо, якщо ви хочете зробити це лише знизу або зверху, ви можете використовувати
<style>
#border-top {
border-top: 1px solid #ccc;
box-shadow: inset 0 1px 0 #fff;
}
</style>
<p id="border-top">This is my content</p>
А внизу:
<style>
#border-bottom {
border-top: 1px solid #ccc;
box-shadow: 0 1px 0 #fff;
}
</style>
<p id="border-bottom">This is my content</p>
Сподіваюся, що це допомагає.
Замість використання непідтримуваних та проблемних контурів просто використовуйте
Приклад:
HTML:
<img src="http://cdn3.thumbs.common.smcloud.net/common/8/6/s/863444wpPN.jpg/r-0,500-n-863444wpPN.jpg" alt="malkovich" />
CSS:
img {
padding: 1px;
background: yellow;
border:1px solid black;
}
ТЕСТ (JSFiddle) :
Якщо під "тисненням" ви маєте на увазі дві межі навколо один одного двома різними кольорами, є outline
властивість ( outline-left
, outline-right
....), але воно погано підтримується в сімействі IE (а саме, IE6 та 7 взагалі не підтримують його) ). Якщо вам потрібні дві межі, найкраще буде другий елемент обгортки.
Якщо ви маєте на увазі використання двох кольорів на одній межі. Використовуйте напр
border-right: 1px white solid;
border-left: 1px black solid;
border-top: 1px black solid;
border-bottom: 1px white solid;
border-styles
для цього також є спеціальні ( ridge
, outset
і inset
), але, на мій досвід, вони, як правило, різняться в різних браузерах.
border : black white;
що означає визначення двох різних кольорів для однієї межі, яка виглядає послідовно одночасно.
outline
але це не буде добре працювати в IE <8
Неможливо, але слід перевірити, чи border-style
значення, наприклад inset
, outset
чи якісь інші, досягли бажаного ефекту .. ( я сумніваюся в цьому .. )
CSS3 має властивості border-image , але я ще не знаю про підтримку браузерів (докладніше на http://www.css3.info/preview/border-image/ ).
Просто напишіть
style="border:medium double;"
для тегу html
Ви можете використовувати
<html>
<head>
<title>Two Colors</title>
<style type="text/css">
.two-colors {
background: none repeat scroll 0% 0% rgb(245, 245, 245); border-color: rgba(111,111,111,0.2) transparent;
padding: 4px; outline: 1px solid green;
}
</style>
<style type="text/css">
body {
padding-top: 20px;
padding-bottom: 40px;
background-color:yellow;
}
</style>
</head>
<body>
<a target="_blank" href="people.htm">
<img class="two-colors" src="people.jpg" alt="Klematis" width="213" height="120" />
</a>
</body>
</html>