2014-10-28 2 views
0

Я немного застрял на границе стилизации вокруг окна div.Укладка границы вокруг div

Проблема заключается в том, что я не могу сделать границы не быть похожим:

demo

Вот реальный пример того, что у меня есть:

Demo

.num.num_1 { 
 
    border-left-color: #0D2431; 
 
} 
 
.num { 
 
    width: 60px; 
 
    height: 60px; 
 
    line-height: 50px; 
 
    border-width: 5px; 
 
    font-size: 40px; 
 
} 
 
.num { 
 
    float: left; 
 
    width: 40px; 
 
    height: 40px; 
 
    line-height: 36px; 
 
    text-align: center; 
 
    border: 2px solid #eee; 
 
    font-size: 20px; 
 
    color: #0D2431; 
 
    background-color: #fff; 
 
} 
 
div { 
 
    margin: 0; 
 
    padding: 0; 
 
    border: 0; 
 
    font: inherit; 
 
    font-size: 100%; 
 
    vertical-align: baseline; 
 
} 
 
}
<div class="num num_1">1</div>

+0

Вы должны добавить DIV этого и попытаться использовать перспективу ('преобразование: skew', может быть), чтобы решить эту проблему, так как границы жестко под углом, как бы вы его не нарезали. – somethinghere

+0

Вот как работают границы, они наклонены, вот что позволяет вам использовать их для создания треугольников с помощью CSS. Я бы использовал псевдоэлемент до достижения того, что вы ищете. – nunopolonia

+0

Можете ли вы поделиться ссылкой на сайт, чей скриншот вы поделили? –

ответ

1

.num.cheat:before { 
 
    content:""; 
 
    position: absolute; 
 
    left: -5px; 
 
    right: -5px; 
 
    top: -5px; 
 
    bottom: -5px; 
 
    
 
} 
 
.num_1:before { 
 
    border-left: 5px solid black; 
 
} 
 
.num_2:before { 
 
    border-left: 5px solid black; 
 
    border-top: 5px solid black; 
 
} 
 
.num_3:before { 
 
    border-left: 5px solid black; 
 
    border-top: 5px solid black; 
 
    border-right: 5px solid black; 
 
} 
 
.num_4:before { 
 
    border-left: 5px solid black; 
 
    border-top: 5px solid black; 
 
    border-right: 5px solid black; 
 
    border-bottom: 5px solid black; 
 
} 
 
.num { 
 
    width: 60px; 
 
    height: 60px; 
 
    line-height: 50px; 
 
    border-width: 5px; 
 
    font-size: 40px; 
 
    position: relative; 
 
    margin-right: 10px; 
 
} 
 
.num { 
 
    float: left; 
 
    width: 40px; 
 
    height: 40px; 
 
    line-height: 36px; 
 
    text-align: center; 
 
    border: 5px solid #eee; 
 
    font-size: 20px; 
 
    color: #0D2431; 
 
    background-color: #fff; 
 
} 
 
div { 
 
    margin: 0; 
 
    padding: 0; 
 
    border: 0; 
 
    font: inherit; 
 
    font-size: 100%; 
 
    vertical-align: baseline; 
 
} 
 
}
<div class="num num_1 cheat">1</div> 
 
<div class="num num_2 cheat">2</div> 
 
<div class="num num_3 cheat">3</div> 
 
<div class="num num_4 cheat">4</div>

Я изменил ваш CSS немного. Я решил это, используя: before pseudo element.

+0

Блестящий! Но у меня есть небольшой вопрос. Это граница для числа 1, у меня 4 числа в итоговых показателях, как я могу сделать для числа 2 'border-left' и' border-top', для числа 3 'border-left',' border-top' и 'border -right' и, наконец, номер 4 'border-left',' border-top', 'border-right' и' border-bottom' – ummahusla

+0

Я отредактировал скрипку, чтобы она работала во всех четырех случаях. –

+0

Perfect! Молодец и большое спасибо. – ummahusla

0

Вы можете сделать странную серию вложенных дивы:

.border { 
 
    background: green; 
 
    padding: 10px 10px 10px 0; 
 
    display: inline-block; 
 
} 
 
.border-left { 
 
    padding-left: 10px; 
 
    background: black; 
 
    display: inline-block; 
 
} 
 
.inside-box { 
 
    background: red; 
 
    height: 100px; 
 
    width: 100px; 
 
}
<div class="border-left"> 
 
    <div class="border"> 
 
     <div class="inside-box">1</div> 
 
    </div> 
 
</div>

1

Еще лучше, вы можете использовать коробку-тень для достижения этого без каких-либо дополнительных элементов.

См: http://jsfiddle.net/w3b1uh7g/2/

.num { 
    border-left: 0px; 
    box-shadow: -5px 0 0 0 #0D2431; 
} 
0

Просто добавьте их в свой CSS. Псевдо элементы должны сделать его квадрат без добавления дополнительных дивы в HTML

.num.num_1:before { 
content: ""; 
position: relative; 
display: block; 
top: -5px; 
left: -5px; 
height: 5px; 
width: 5px; 
background: black; 
} 

.num.num_1:after { 
content: ""; 
position: relative; 
display: block; 
bottom: 0px; 
left: -5px; 
height: 5px; 
width: 5px; 
background: black; 
} 
Смежные вопросы