Блоки со стрелками (часть 2)

В продолжении первой части, примеры как добавить стрелки к блоку tooltip с рамкой. Используются оба псевдо-элемента :before и :after.

<div class="arrow">
	Пример блока со стрелкой CSS
</div>
HTML
1

Слева

.arrow {
	width: 300px;
	padding: 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;    
	left: 8px;
	bottom: 100%;
}
.arrow:after {
	border-bottom-color: #fff;
	border-width: 8px;
	margin-left: 0;
}
.arrow:before {
	border-bottom-color: orange;
	border-width: 9px;
	margin-left: -1px;
}
CSS

По центру

.arrow {
	width: 300px;
	padding: 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;   
	bottom: 100%;
	left: 50%;
}
.arrow:after {
	border-bottom-color: #fff;
	border-width: 8px;
	margin-left: -8px;
}
.arrow:before {
	border-bottom-color: orange;
	border-width: 9px;
	margin-left: -9px;
}
CSS

Справа

.arrow {
	width: 300px;
	padding: 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute; 
	bottom: 100%;
	right: 8px;
}
.arrow:after {
	border-bottom-color: #fff;
	border-width: 8px;
	margin-right: 0;
}
.arrow:before {
	border-bottom-color: orange;
	border-width: 9px;
	margin-right: -1px;
}
CSS
2

Слева

.arrow {
	width: 300px;
	padding: 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute; 
 	top: 100%;
	left: 16px;
}
.arrow:after {
	border-top-color: #fff;
	border-width: 8px;
	margin-left: 0;
}
.arrow:before {
	border-top-color: orange;
	border-width: 9px;
	margin-left: -1px;
}
CSS

По центру

.arrow {
	width: 300px;
	padding: 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;
 	top: 100%;
	left: 50%;
}
.arrow:after {
	border-top-color: #fff;
	border-width: 8px;
	margin-left: -8px;
}
.arrow:before {
	border-top-color: orange;
	border-width: 9px;
	margin-left: -9px;
}
CSS

Справа

.arrow {
	width: 300px;
	padding: 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute; 
 	top: 100%;
	right: 8px;
}
.arrow:after {
	border-top-color: #fff;
	border-width: 8px;
	margin-right: 0;
}
.arrow:before {
	border-top-color: orange;
	border-width: 9px;
	margin-right: -1px;
}
CSS
3

Сверху

.arrow {
	width: 300px;
	padding: 20px 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;  
	right: 100%;
	top: 8px;
}
.arrow:after {
	border-right-color: #fff;
	border-width: 8px;
	margin-top: 0;
}
.arrow:before {
	border-right-color: orange;
	border-width: 9px;
	margin-top: -1px;
}
CSS

По центру

.arrow {
	width: 300px;
	padding: 20px 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;  
	right: 100%;
	top: 50%;
}
.arrow:after {
	border-right-color: #fff;
	border-width: 8px;
	margin-top: -8px;
}
.arrow:before {
	border-right-color: orange;
	border-width: 9px;
	margin-top: -9px;
}
CSS

Снизу

.arrow {
	width: 300px;
	padding: 20px 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;    
	right: 100%;
	bottom: 8px;
}
.arrow:after {
	border-right-color: #fff;
	border-width: 8px;
	margin-bottom: 0;
}
.arrow:before {
	border-right-color: orange;
	border-width: 9px;
	margin-bottom: -1px;
}
CSS
4

Сверху

.arrow {
	width: 300px;
	padding: 20px 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;    
	left: 100%;
	top: 8px;
}
.arrow:after {
	border-left-color: #fff;
	border-width: 8px;
	margin-top: 0;
}
.arrow:before {
	border-left-color: orange;
	border-width: 9px;
	margin-top: -1px;
}
CSS

По центру

.arrow {
	width: 300px;
	padding: 20px 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;    
	left: 100%;
	top: 50%;
}
.arrow:after {
	border-left-color: #fff;
	border-width: 8px;
	margin-top: -8px;
}
.arrow:before {
	border-left-color: orange;
	border-width: 9px;
	margin-top: -9px;
}
CSS

Снизу

.arrow {
	width: 300px;
	padding: 20px 10px;
	position: relative;
	background: #fff;
	border: 1px solid orange;
}
.arrow:after, .arrow:before {
	content: ""; 
	border: solid transparent;
	position: absolute;    
	left: 100%;
	bottom: 8px;
}
.arrow:after {
	border-left-color: #fff;
	border-width: 8px;
	margin-bottom: 0;
}
.arrow:before {
	border-left-color: orange;
	border-width: 9px;
	margin-bottom: -1px;
}
CSS
14.03.2019, обновлено 14.01.2022
6685
Предыдущая запись Блоки со стрелками (часть 1)
Следующая запись CSS стили выделенного текста

Комментарии

, чтобы добавить комментарий.

Другие публикации

Аккордеон jQuery UI
jQuery UI Accordion функциональный плагин аккордеона. Рассмотрим примеры использования.
24181
+7
Работа с Input Text jQuery
Сборник приемов JQuery для работы с текстовыми полями. Во всех примерах используется следующий html код...
128317
+15
Мануал по созданию и форматированию excel файлов в PHPExcel
К сожалению разработчики прекратили поддержку и разработку проекта, но PHPExcel все равно остается популярной...
129125
+36
Горизонтальное меню justify
В отличии предыдущего меню, где есть отступы у каждого элемента, часто возникает задача сделать резиновое меню без них. Пункты меню должно идти с одинаковыми интервалами и без отступов по бокам.
8431
-1
Шахматное поле на CSS
Приемы как сделать шахматную сетку на псевдо-свойстве :nth-child().
30677
+1
Contenteditable – текстовый редактор
Если добавить атрибут contenteditable к элементу, его содержимое становится доступно для редактирования пользователю, а...
43641
+34