Более простой способ создать круг div, чем с помощью изображения?
Мне интересно, есть ли более простой способ создать круговые дивы, чем то, что я делаю сейчас.
В настоящее время я просто делаю изображение для каждого разного размера, но это раздражает.
есть ли в любом случае использование CSS для создания divs, которые являются круглыми, и я могу указать радиус?
11 ответов:
вот демо:http://jsfiddle.net/thirtydot/JJytE/1170/
CSS:
.circleBase { border-radius: 50%; behavior: url(PIE.htc); /* remove if you don't care about IE8 */ } .type1 { width: 100px; height: 100px; background: yellow; border: 3px solid red; } .type2 { width: 50px; height: 50px; background: #ccc; border: 3px solid #000; } .type3 { width: 500px; height: 500px; background: aqua; border: 30px solid blue; }HTML:
<div class="circleBase type1"></div> <div class="circleBase type2"></div><div class="circleBase type2"></div> <div class="circleBase type3"></div>чтобы сделать эту работу в IE8 и старше, вы должны скачать и использовать CSS3 PIE. Моя демо-версия выше не будет работать в IE8, но это только потому, что jsFiddle не размещает
PIE.htc.мое демо выглядит так:
установка радиуса границы каждой стороны элемента на 50% создаст отображение окружности любого размера:
.circle { border-radius: 50%; width: 200px; height: 200px; /* width and height can be anything, as long as they're equal */ }
попробуй такое
.iphonebadge { border-radius:99px; -moz-border-radius:99px; -webkit-border-radius:99px; background:red; color:#fff; border:3px #fff solid; background-color: #e7676d; background-image: -webkit-gradient(linear, left top, left bottom, from(#e7676d), to(#b7070a)); /* Saf4+, Chrome */ background-image: -webkit-linear-gradient(top, #e7676d, #b7070a); /* Chrome 10+, Saf5.1+, iOS 5+ */ background-image: -moz-linear-gradient(top, #e7676d, #b7070a); /* FF3.6 */ background-image: -ms-linear-gradient(top, #e7676d, #b7070a); /* IE10 */ background-image: -o-linear-gradient(top, #e7676d, #b7070a); /* Opera 11.10+ */ background-image: linear-gradient(top, #e7676d, #b7070a); filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#e7676d', EndColorStr='#b7070a'); -webkit-box-shadow: 0px 2px 4px #000000; /* Saf3-4 */ -moz-box-shadow: 0px 2px 4px #000000; /* FF3.5 - 3.6 */ box-shadow: 0px 2px 4px #000000; /* Opera 10.5, IE9, FF4+, Chrome 10+ */ display:inline-block; padding:2px 2px 2px 2px ; margin:3px; font-family:arial; font-weight:bold; }
это действительно возможно.
посмотреть: совет CSS: как сделать круги без изображений. Смотрите демо.
но имейте в виду, он имеет серьезные недостатки с точки зрения совместимости в основном,ты заставляешь кошку лаять.
этоздесь
как вы увидите, вам просто нужно настроить
heightиwidthполовинуborder-radiusхорошее удачи!
есть также [плохая идея] использовать несколько (20+) горизонтальных или вертикальных 1px divs для построения круга. этот плагин jQuery использует этот метод для построения различных фигур.
дать ширину и высоту в зависимости от размера,но сохранить оба равны
.circle { background-color: gray; height: 400px; width: 400px; border-radius: 100%; }<div class="circle"> </div>
.fa-circle{ color: tomato; } div{ font-size: 100px; }<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> <div><i class="fa fa-circle" aria-hidden="true"></i></div>просто хотел упомянуть еще одно решение, которое отвечает на вопрос "проще создать circle div, чем использовать изображение?- то есть использовать FontAwesome.
вы импортируете файл FontAwesome css или из CDN здесь
а потом ты просто:
<div><i class="fa fa-circle" aria-hidden="true"></i></div>и вы можете дать ему любой цвет вы хотите любой размер шрифта.
в основном это использует абсолютную позицию div для размещения символа в заданных координатах. таким образом, используя параметрическое уравнение окружности, вы можете начертить круг. если вы измените положение div на относительное, это приведет к синусоидальной волне...
в сущности, мы строим графики уравнений, злоупотребляя свойством позиции. я не очень хорошо разбираюсь в css, поэтому кто-то наверняка может сделать это более элегантным. наслаждаться.
это работает на всех браузерах и мобильных устройствах (что я знать.) я использую его на своем собственном сайте, чтобы нарисовать синусоидальные волны текста (www.cpixel.com). исходный источник этого кода находится здесь: www.mathopenref.com/coordcirclealgorithm.html
<html> <head></head> <body> <script language="Javascript"> var x_center = 50; //0 in both x_center and y_center will place the center var y_center = 50; // at the top left of the browser var resolution_step = 360; //how many times to stop along the circle to plot your character. var radius = 50; //how big ya want your circle? var plot_character = "·"; //could use any character here, try letters/words for cool effects var div_top_offset=10; var div_left_offset=10; var x,y; for ( var angle_theta = 0; angle_theta < 2 * Math.PI; angle_theta += 2 * Math.PI/resolution_step ){ x = x_center + radius * Math.cos(angle_theta); y = y_center - radius * Math.sin(angle_theta); document.write("<div style='position:absolute;top:" + (y+div_top_offset) + ";left:"+ (x+div_left_offset) + "'>" + plot_character + "</div>"); } </script> </body> </html>
вы можете попробовать
radial-gradientфункция CSS:.circle { width: 500px; height: 500px; border-radius: 50%; background: #ffffff; /* Old browsers */ background: -moz-radial-gradient(center, ellipse cover, #ffffff 17%, #ff0a0a 19%, #ff2828 40%, #000000 41%); /* FF3.6-15 */ background: -webkit-radial-gradient(center, ellipse cover, #ffffff 17%,#ff0a0a 19%,#ff2828 40%,#000000 41%); /* Chrome10-25,Safari5.1-6 */ background: radial-gradient(ellipse at center, #ffffff 17%,#ff0a0a 19%,#ff2828 40%,#000000 41%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ }применить к
divслоев:<div class="circle"></div>

Comments