我的要求是这样的:
圆形div由其他4个div包围。
我试着用这种方式:
.circle {
z-index: 10;
position: absolute;
width: 13em;
height: 13em;
border-radius: 50%;
background: lightblue;
top: 60px;
right: 40%;
}
.corners {
background: #eee;
color: #333;
position: relative;
overflow: hidden;
}
.text {
border: 1px solid #ccc;
padding: 8px 20px 8px;
height: 150px;
}
.arc-bottom-l,
.arc-bottom-r,
.arc-top-l,
.arc-top-r {
position: absolute;
background: #fff;
width: 210px;
height: 210px;
border-radius: 50%;
border: 1px solid #ccc;
}
.arc-bottom-l {
bottom: -100px;
left: -100px;
}
.arc-bottom-r {
bottom: -100px;
right: -100px;
}
.arc-top-l {
top: -100px;
left: -100px;
}
.arc-top-r {
top: -100px;
right: -100px;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<body>
<div class="container" style="height:300px; text-align:center;">
<div class='circle'></div>
<div class="row">
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="text"></div>
<div class="arc-bottom-r"></div>
</div>
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="text"></div>
<div class="arc-bottom-l"></div>
</div>
</div>
<div class="row" style="height:0px"></div>
<div class="row">
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="arc-top-r"></div>
<div class="text"></div>
</div>
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="arc-top-l"></div>
<div class="text"></div>
</div>
</div>
</div>
</body>
但我无法为所有设备制作它。如何为所有设备制作这个东西并相应地定位中间div? 我尝试了什么,在div之间添加空格,并在容器的中心制作圆形div,但是当我调整窗口大小时,它会变形。
答案 0 :(得分:2)
你非常接近。
在.circle
上使用:
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
并在.container
上使用:
position: relative
无论屏幕尺寸如何,确保圆圈保持在中间位置。
工作示例:
.container {
position: relative
}
.circle {
z-index: 10;
width: 13em;
height: 13em;
border-radius: 50%;
background: lightblue;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.corners {
background: #eee;
color: #333;
position: relative;
overflow: hidden;
}
.text {
border: 1px solid #ccc;
padding: 8px 20px 8px;
height: 150px;
}
.arc-bottom-l,
.arc-bottom-r,
.arc-top-l,
.arc-top-r {
position: absolute;
background: #fff;
width: 210px;
height: 210px;
border-radius: 50%;
border: 1px solid #ccc;
}
.arc-bottom-l {
bottom: -100px;
left: -100px;
}
.arc-bottom-r {
bottom: -100px;
right: -100px;
}
.arc-top-l {
top: -100px;
left: -100px;
}
.arc-top-r {
top: -100px;
right: -100px;
}
&#13;
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<body>
<div class="container" style="height:300px; text-align:center;">
<div class='circle'></div>
<div class="row">
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="text"></div>
<div class="arc-bottom-r"></div>
</div>
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="text"></div>
<div class="arc-bottom-l"></div>
</div>
</div>
<div class="row" style="height:0px"></div>
<div class="row">
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="arc-top-r"></div>
<div class="text"></div>
</div>
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="arc-top-l"></div>
<div class="text"></div>
</div>
</div>
</div>
</body>
&#13;
答案 1 :(得分:1)
试试这个,
.circle {
z-index: 10;
position: absolute;
width: 13em;
height: 13em;
border-radius: 50%;
background: lightblue;
top: 60px;
left: 50%;
margin-left: -91px;
}
.corners {
background: #eee;
color: #333;
position: relative;
overflow: hidden;
}
.text {
border: 1px solid #ccc;
padding: 8px 20px 8px;
height: 150px;
}
.arc-bottom-l,
.arc-bottom-r,
.arc-top-l,
.arc-top-r {
position: absolute;
background: #fff;
width: 210px;
height: 210px;
border-radius: 50%;
border: 1px solid #ccc;
}
.arc-bottom-l {
bottom: -100px;
left: -100px;
}
.arc-bottom-r {
bottom: -100px;
right: -100px;
}
.arc-top-l {
top: -100px;
left: -100px;
}
.arc-top-r {
top: -100px;
right: -100px;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<body>
<div class="container" style="height:300px; text-align:center;">
<div class='circle'></div>
<div class="row">
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="text"></div>
<div class="arc-bottom-r"></div>
</div>
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="text"></div>
<div class="arc-bottom-l"></div>
</div>
</div>
<div class="row" style="height:0px"></div>
<div class="row">
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="arc-top-r"></div>
<div class="text"></div>
</div>
<div class="corners col-md-6 col-sm-6 col-lg-6 col-xs-6">
<div class="arc-top-l"></div>
<div class="text"></div>
</div>
</div>
</div>
</body>