Используя подсказки, найденные здесь , я успешно достиг «наклонного» div, разместив треугольник над цветным прямоугольником, однако я испытываю некоторые странные артефакты (см. Ниже).
Обратите внимание на тонкую линию над цветной секцией - это похоже на то, что треугольник расположен слишком низко. Я часто использую 10vh
или 10%
, что может привести к ошибкам округления с нерасширяемыми высотами экрана / div, но это предположение.
Что вызывает эту проблему, и что я могу ее исправить?
& {
width: 0;
height: 0;
border-style: none;
}
#container {
width: 100%;
position: absolute;
z-index: 1;
}
#top-left {
border-right: 100vw solid transparent;
}
#top-right {
border-left: 100vw solid transparent;
}
#bottom-left {
border-right: 100vw solid transparent;
}
#bottom-right {
border-left: 100vw solid transparent;
}
Когда я создаю треугольник, я указываю либо border-top
или border-bottom
, либо соответствующий отрицательный маркер. В приведенном выше случае высота составляла 50 пикселей:
<div id = {{attr.direction}} style = "border-top: {{attr.height}} solid {{attr.color}}"></div>
<div id = {{attr.direction}} style = "border-bottom: {{attr.height}} solid {{attr.color}}; margin-top: -{{attr.height}}"></div>
Это можно увидеть в этом JSFiddle , а не путем изменения размера панели просмотра, но выбрав отзывчивый вид в настройках разработчика и изменив размер экрана. Чтобы сделать это в хроме, щелкните правой кнопкой мыши> Осмотреть> Отзывчивый (из раскрывающегося списка). Однако это не просто сбой в настройках разработчика, как это наблюдается на реальных мобильных устройствах. Обратите внимание на тонкий красный контур на изображении ниже.
html,css,css-shapes,artifacts,
& {
width: 0;
height: 0;
border-style: none;
}
#container {
width: 100%;
position: absolute;
z-index: 1;
}
#top-left {
border-right: 100vw solid transparent;
}
#top-right {
border-left: 100vw solid transparent;
}
#bottom-left {
border-right: 100vw solid transparent;
}
#bottom-right {
border-left: 100vw solid transparent;
}
Когда я создаю треугольник, я указываю либо border-top
или border-bottom
, либо соответствующий отрицательный маркер. В приведенном выше случае высота составляла 50 пикселей:
<div id = {{attr.direction}} style = "border-top: {{attr.height}} solid {{attr.color}}"></div>
<div id = {{attr.direction}} style = "border-bottom: {{attr.height}} solid {{attr.color}}; margin-top: -{{attr.height}}"></div>
Это можно увидеть в этом JSFiddle , а не путем изменения размера панели просмотра, но выбрав отзывчивый вид в настройках разработчика и изменив размер экрана. Чтобы сделать это в хроме, щелкните правой кнопкой мыши> Осмотреть> Отзывчивый (из раскрывающегося списка). Однако это не просто сбой в настройках разработчика, как это наблюдается на реальных мобильных устройствах. Обратите внимание на тонкий красный контур на изображении ниже.
02HTML, CSS, CSS-формы, артефакты,