#html #css
Вопрос:
Заранее приношу извинения, это мой первый пост на SO, так что, если я не даю вам то, что вам нужно, я постараюсь разобраться в этом. Чтобы дать контекст: это для css файла .epub, если это поможет.
Я пытаюсь разместить изображение в верхнем углу границы нескольких определенных div
s. В настоящее время я использую :before
, однако, если данный div
вопрос не является первым на странице, значок на самом деле не является частью границы, вместо этого он находится только в верхнем левом углу страницы.
Я сделал этот JSFiddle, чтобы продемонстрировать, чего я пытаюсь достичь, но это не совсем так. Значок находится в верхнем углу div
, но это не то место, где я хочу, я хочу, чтобы он был в верхнем углу границы. Если я удалю position:absolute
и position:relative
от родителя, и от ребенка div
, то значок переместится в верхний угол страницы.
В качестве альтернативы JSFiddle:
.other {
margin-top: 20px;
margin-left: 20px;
margin-right: 20px;
margin-bottom: 20px;
border: 10px solid transparent;
padding-left: 20px;
padding-right: 20px;
padding-top: 10px;
padding-bottom: 20px;
}
.info {
margin-top: 20px;
margin-left: 20px;
margin-right: 20px;
margin-bottom: 20px;
border: 10px solid transparent;
padding-left: 20px;
padding-right: 20px;
padding-top: 10px;
padding-bottom: 20px;
border-image: url(https://i.ibb.co/YDRL4pQ/box.png) 30% round;
position:relative;
}
.info:before {
content: '';
height: 50px;
width: 50px;
position: absolute;
top: 5px;
left: 5px;
background:url(https://i.ibb.co/S5zFz5r/dig-deeper.png);
}
Unrelated text further up the page
<div class="other">
unrelated div further up the page
</div>
<div class="info">div with text for icon</div>
Надеюсь, я предоставил достаточно информации и контекста! Я искал на сайте похожие темы, и, похоже, это не совсем то, что я ищу, так как мой конечный код будет выглядеть так: . Радиус в нижнем углу был бы хорошим, но не необходимым.
Ответ №1:
Просто используйте недвижимость top
и left
в info:before
, чтобы переместить ее через границу. См. Пример….; -)
.other {
margin-top: 20px;
margin-left: 20px;
margin-right: 20px;
margin-bottom: 20px;
border: 10px solid transparent;
padding-left: 20px;
padding-right: 20px;
padding-top: 10px;
padding-bottom: 20px;
}
.info {
margin-top: 20px;
margin-left: 20px;
margin-right: 20px;
margin-bottom: 20px;
border: 10px solid transparent;
padding-left: 20px;
padding-right: 20px;
padding-top: 10px;
padding-bottom: 20px;
border-image: url(https://i.ibb.co/YDRL4pQ/box.png) 30% round;
position: relative;
}
.info:before {
content: '';
height: 50px;
width: 50px;
position: absolute;
/* use this values for positioning
negative values move it over the border */
top: -10px;
left: -10px;
background: url(https://i.ibb.co/S5zFz5r/dig-deeper.png);
}
<div class="other">
unrelated div further up the page
</div>
<div class="info">div with text for icon</div>
Комментарии:
1. О боже мой. Спасибо.