Геометрические фигуры с помощью CSS и CSS3

фигуры с помощью cssРечь пойдет сегодня о создании геометрических фигур с помощью кода CSS. Рассмотр этой темы мы начнем с простых фигур — квадратов и кругов и закончим сложными — сердце и знак бесконечности. В статье приведены готовые фрагменты кода, которые вы можете сразу использовать в своих проектах. В ближайшее время появится демо станица с примерами. Если у вас возникнут вопросы — задавайте их в комментариях. Итак, приступим.

Квадрат

Здесь все просто — мы задаем высоту и ширину по 100px и заливаем фон цветом.

#square {
	width: 100px;
	height: 100px;
	background: #7ad055;
}

Прямоугольник

То же самое, что и квадрат, только ширина и высота не равны между собой.

#rectangle {
	width: 200px;
	height: 100px;
	background: #7ad055;
}

Круг

Для начала создаем квадрат, а потом закругляем углы с помощью border-radius.

#circle {
	width: 100px;
	height: 100px;
	background: #7ad055;
	-moz-border-radius: 50px;
	-webkit-border-radius: 50px;
	border-radius: 50px;
}

Овал

То же самое. что и круг, только мы используем двойные значения border-radius.

#oval {
	width: 200px;
	height: 100px;
	background: #7ad055;
	-moz-border-radius: 100px / 50px;
	-webkit-border-radius: 100px / 50px;
	border-radius: 100px / 50px;
}

Треугольник с вершиной вверху

Треугольник мы создаем с помощью задания нужных границ. В данном случае левая и правая границы по 50px, а нижняя 100px.

#triangle-up {
	width: 0;
	height: 0;
	border-left: 50px solid transparent;
	border-right: 50px solid transparent;
	border-bottom: 100px solid #7ad055;
}

Треугольник с вершиной снизу

Аналогично предыдущему примеру.

#triangle-down {
	width: 0;
	height: 0;
	border-left: 50px solid transparent;
	border-right: 50px solid transparent;
	border-top: 100px solid #7ad055;
}

Треугольник с вершиной слева

Аналогично предыдущему примеру.

#triangle-left {
	width: 0;
	height: 0;
	border-top: 50px solid transparent;
	border-right: 100px solid #7ad055;
	border-bottom: 50px solid transparent;
}

Треугольник с вершиной справа

Аналогично предыдущему примеру.

#triangle-right {
	width: 0;
	height: 0;
	border-top: 50px solid transparent;
	border-left: 100px solid #7ad055;
	border-bottom: 50px solid transparent;
}

Треугольник с вершиной в верхнем левом углу

#triangle-topleft {
	width: 0;
	height: 0;
	border-top: 100px solid #7ad055;
	border-right: 100px solid transparent;
}

Треугольник с вершиной в правом верхнем углу

#triangle-topright {
	width: 0;
	height: 0;
	border-top: 100px solid #7ad055;
	border-left: 100px solid transparent;

}

Треугольник с вершиной в левом нижнем углу

#triangle-bottomleft {
	width: 0;
	height: 0;
	border-bottom: 100px solid #7ad055;
	border-right: 100px solid transparent;
}	

Треугольник с вершиной в правом нижнем углу

#triangle-bottomright {
	width: 0;
	height: 0;
	border-bottom: 100px solid #7ad055;
	border-left: 100px solid transparent;
}

Параллелограмм

Создаем прямоугольник и растягиваем края, используя transform.

#parallelogram {
	width: 150px;
	height: 100px;
	-webkit-transform: skew(20deg);
	   -moz-transform: skew(20deg);
	     -o-transform: skew(20deg);
	background: #7ad055;
} 

Трапеция

#trapezia {
	border-bottom: 100px solid #7ad055;
	border-left: 50px solid transparent;
	border-right: 50px solid transparent;
	height: 0;
	width: 100px;
}

Шестиконечная звезда

#star-six {
	width: 0;
	height: 0;
	border-left: 50px solid transparent;
	border-right: 50px solid transparent;
	border-bottom: 100px solid #7ad055;
	position: relative;
}
#star-six:after {
	width: 0;
	height: 0;
	border-left: 50px solid transparent;
	border-right: 50px solid transparent;
	border-top: 100px solid #7ad055;
	position: absolute;
	content: "";
	top: 30px;
	left: -50px;
}

Пятиконечная звезда

#star-five {
   margin: 50px 0;
   position: relative;
   display: block;
   color: #7ad055;
   width: 0px;
   height: 0px;
   border-right:  100px solid transparent;
   border-bottom: 70px  solid #7ad055;
   border-left:   100px solid transparent;
   -moz-transform:    rotate(35deg);
   -webkit-transform: rotate(35deg);
   -ms-transform:     rotate(35deg);
   -o-transform:      rotate(35deg);
}
#star-five:before {
   border-bottom: 80px solid #7ad055;
   border-left: 30px solid transparent;
   border-right: 30px solid transparent;
   position: absolute;
   height: 0;
   width: 0;
   top: -45px;
   left: -65px;
   display: block;
   content: '';
   -webkit-transform: rotate(-35deg);
   -moz-transform:    rotate(-35deg);
   -ms-transform:     rotate(-35deg);
   -o-transform:      rotate(-35deg);

}
#star-five:after {
   position: absolute;
   display: block;
   color: #7ad055;
   top: 3px;
   left: -105px;
   width: 0px;
   height: 0px;
   border-right: 100px solid transparent;
   border-bottom: 70px solid #7ad055;
   border-left: 100px solid transparent;
   -webkit-transform: rotate(-70deg);
   -moz-transform:    rotate(-70deg);
   -ms-transform:     rotate(-70deg);
   -o-transform:      rotate(-70deg);
   content: '';
}

Пятиугольник

#pentagon {
    position: relative;
    width: 54px;
    border-width: 50px 18px 0;
    border-style: solid;
    border-color: #7ad055 transparent;
}
#pentagon:before {
    content: "";
    position: absolute;
    height: 0;
    width: 0;
    top: -85px;
    left: -18px;
    border-width: 0 45px 35px;
    border-style: solid;
    border-color: transparent transparent #7ad055;
}

Шестиугольник

#hexagon {
	width: 100px;
	height: 55px;
	background: #7ad055;
	position: relative;
}
#hexagon:before {
	content: "";
	position: absolute;
	top: -25px;
	left: 0;
	width: 0;
	height: 0;
	border-left: 50px solid transparent;
	border-right: 50px solid transparent;
	border-bottom: 25px solid #7ad055;
}
#hexagon:after {
	content: "";
	position: absolute;
	bottom: -25px;
	left: 0;
	width: 0;
	height: 0;
	border-left: 50px solid transparent;
	border-right: 50px solid transparent;
	border-top: 25px solid #7ad055;
}

Восьмиугольник

#octagon {
	width: 100px;
	height: 100px;
	background: #7ad055;
	position: relative;
}

#octagon:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	border-bottom: 29px solid #7ad055;
	border-left: 29px solid #eee;
	border-right: 29px solid #eee;
	width: 42px;
	height: 0;
}

#octagon:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	border-top: 29px solid #7ad055;
	border-left: 29px solid #eee;
	border-right: 29px solid #eee;
	width: 42px;
	height: 0;
}

Сердце

#heart {
    position: relative;
    width: 100px;
    height: 90px;
}
#heart:before,
#heart:after {
    position: absolute;
    content: "";
    left: 50px;
    top: 0;
    width: 50px;
    height: 80px;
    background: #7ad055;
    -moz-border-radius: 50px 50px 0 0;
    border-radius: 50px 50px 0 0;
    -webkit-transform: rotate(-45deg);
       -moz-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
         -o-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-transform-origin: 0 100%;
       -moz-transform-origin: 0 100%;
        -ms-transform-origin: 0 100%;
         -o-transform-origin: 0 100%;
            transform-origin: 0 100%;
}
#heart:after {
    left: 0;
    -webkit-transform: rotate(45deg);
       -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
         -o-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transform-origin: 100% 100%;
       -moz-transform-origin: 100% 100%;
        -ms-transform-origin: 100% 100%;
         -o-transform-origin: 100% 100%;
            transform-origin :100% 100%;
}

Знак бесконечности

#infinity {
    position: relative;
    width: 212px;
    height: 100px;
}

#infinity:before,
#infinity:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 60px;
    height: 60px;
    border: 20px solid #7ad055;
    -moz-border-radius: 50px 50px 0 50px;
         border-radius: 50px 50px 0 50px;
    -webkit-transform: rotate(-45deg);
       -moz-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
         -o-transform: rotate(-45deg);
            transform: rotate(-45deg);
}

#infinity:after {
    left: auto;
    right: 0;
    -moz-border-radius: 50px 50px 50px 0;
         border-radius: 50px 50px 50px 0;
    -webkit-transform:rotate(45deg);
       -moz-transform:rotate(45deg);
        -ms-transform:rotate(45deg);
         -o-transform:rotate(45deg);
            transform:rotate(45deg);
}

Продолжение статьи и новые фигур вы можете найти в статье Геометрические фигуры с помощью CSS и CSS3. Продолжение



Запись опубликована в рубрике CSS3 с метками , , . Добавьте в закладки постоянную ссылку.

6 комментариев: Геометрические фигуры с помощью CSS и CSS3

  1. Сергей Лисин говорит:

    А про кросс-браузерность не напишите? Поддерживают ли IE 6-7-8-9?

    • Гилязетдинов Руслан говорит:

      по кросс-браузерности писать долго — не все свойства CSS3 имеют одинаковую поддержку. проще сделаю страницу с примерами — будет возможность посмотреть в разных браузерах.

  2. artoha.ru — Толстый тролль говорит:

    зачет

  3. Уведомление: Геометрические фигуры с помощью CSS и CSS3. Продолжение | RusDigi.org Блог Гилязетдинова Руслана

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *