欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

css3实现8个小圆在一个大圆上平均分布

程序员文章站 2024-02-02 10:34:40
...

一道面试题:只有一个ul,和8个li,实现布局,8个小圆平均分布在一个大圆边缘,只用css实现。

解题关键:css3 中 transform,rotate,demo如下

     <div class="demo">
			<ul>
				<li>1</li>
				<li>2</li>
				<li>3</li>
				<li>4</li>
				<li>5</li>
				<li>6</li>
				<li>7</li>
				<li>8</li>
			</ul>
		</div>

     <style>
			.demo{
				width: 600px;
				height: 600px;
				background-color: #000000;
				padding: 100px;
				box-sizing: border-box;
			}
			ul,li{
				margin: 0;
				list-style-type: none;
				padding: 0;
			}
			ul{
				width: 400px;
				height: 400px;
				background-color:#fff;
				border-radius: 50%;
				position: relative;
			}
			li{
				width: 40px;
				height: 40px;
				position: absolute;
				background-color:red;
				border-radius: 50%;
				line-height: 40px;
				text-align: center;
				left: 50%;
				margin-left: -20px;
				margin-top: -20px;
			}
			li:nth-of-type(2){
				transform: rotate(45deg);
				transform-origin:20px 220px;
			}
			li:nth-of-type(3){
				transform: rotate(90deg);
				transform-origin:20px 220px;
			}
			li:nth-of-type(4){
				transform: rotate(135deg);
				transform-origin:20px 220px;
			}
			li:nth-of-type(5){
				transform: rotate(180deg);
				transform-origin:20px 220px;
			}
			li:nth-of-type(6){
				transform: rotate(225deg);
				transform-origin:20px 220px;
			}
			li:nth-of-type(7){
				transform: rotate(270deg);
				transform-origin:20px 220px;
			}
			li:nth-of-type(8){
				transform: rotate(315deg);
				transform-origin:20px 220px;
			}
			
		</style>

最终效果:

css3实现8个小圆在一个大圆上平均分布