Вопрос
Я нашел учебное пособие в CSS3 Chanscrumb и сделал ему несколько редактиций (хотя у учебной пособии была одинаковая проблема), и обнаружила, что если хлебная кормлия пошла на новую строку, то она будет провалиться в результате несчастных случаев из-за него, используя переполнение: скрыто Чтобы скрыть псевдоэлементы ...
html
<ul class="crumb">
<li><a href="#">Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
<li><a href="#">..Crumbs</a></li>
</ul>
.
CSS
.crumb {
list-style: none;
overflow: hidden;
margin-bottom: 3px;
}
.crumb li {
line-height: inherit;
}
.crumb li a {
color: white;
text-decoration: none;
padding: 0 0 0 20px;
background: #777;
position: relative;
display: block;
float: left;
border: solid 2px #777;
font-size: 10px;
}
.crumb li a:after {
content: " ";
width: 0;
height: 0;
line-height: 0;
border-top:25px solid transparent;
border-bottom: 25px solid transparent;
border-left: 15px solid #777;
position: absolute;
top: 50%;
margin-top: -25px;
left: 100%;
z-index: 2;
}
.crumb li a:before {
content: " ";
width: 0;
height: 0;
line-height: 0;
border-top: 25px solid transparent;
border-bottom: 25px solid transparent;
border-left: 15px solid white;
position: absolute;
top: 50%;
margin-top: -25px;
margin-left: 2px;
left: 100%;
z-index: 1;
}
.crumb li:first-child a {
padding-left: 8px;
}
.crumb li a:hover {
border-color: black;
background: black;
}
.crumb li a:hover:after {
border-left-color: black !important;
}
.crumb li:last-child a:hover:after {
border-left-color: #e67e22 !important;
}
.crumb li:last-child a:after {
border-left-color: #e67e22 !important;
}
.crumb li:last-child a {
border-color: #e67e22;
background: #e67e22;
}
.
Вот скрипка ... http://jsfiddle.net/kggnb/40/
Я попытался вносить изменения в CSS, чтобы исправить это, но, похоже, не может видеть способ изменить псевдоэлементы, не делая их уже, но это также значит иметь чрезвычайно точечные точки.
HTML предоставляется на сервере, лучшее решение, которое я могу подумать о том, что включает некоторые проверки перед его возможностью проверять, сколько элементов будет сгенерировано, а затем просто бросать любые переполненные в течение определенного размера экрана внутри Новый список и начать через каждый раз, когда он попадает в эту ширину.
Другая идея, с которым появился коллега, использовал изображение для очков, но я бы предпочел накопить исправление CSS, если это возможно.
Любые другие идеи / исправления?
спасибо.
Обновление - Извините, я уточню. Я не хочу, чтобы стрелки появились вообще, правильная версия панировщиков будет выглядеть так. http://jsfiddle.net/kggnb/49/net/kggnb/49/
Вопрос использует границы и высоту, чтобы сделать треугольники в CSS3, из-за точки, которую я хочу для треугольника, псевдоэлементы должны быть довольно большими, настроить переполнение: Hidden решает эту проблему, избавившись от остатки, но Когда панирумы пролетают над одной строкой на странице, возникают проблемы.
Я мог бы использовать перекос, но тогда он не будет работать в IE8.
Решение
Просто сделайте стрелку меньше, вот изменения:
.crumb li a:after {
....
border-top:9px solid transparent;
border-bottom: 9px solid transparent;
border-left: 9px solid #777;
....
top:-2px;
}
.crumb li a:before {
....
border-top: 9px solid transparent;
border-bottom: 9px solid transparent;
border-left: 9px solid white;
....
top:-2px;
}
.