<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.role-indicators{
font-size: 0;
}
.role-indicators .role-indicator{
font-size: 0;
vertical-align: top;
display: inline-block;
}
.role-indicators .role-indicator .indicator-item{
width: calc((100% - 60px) / 4);
min-width: 288px;
margin: 0 0 12px 12px;
background: #FAFAFA;
box-shadow: 0 0 10px 0 rgba(0,0,0,0.25);
display: inline-block;
vertical-align: top;
}
.role-indicators .role-indicator .indicator-item .item-head{
height: 74px;
font-size: 14px;
border-bottom: 1px solid #E1E5E6;
background: #EEE;
}
.role-indicators .role-indicator .indicator-item .item-head .person-photo{
margin: 12px;
width: 50px;
height: 50px;
border: 4px solid #E1E5E6;
border-radius: 50%;
background-color: #FFFFFF;
background-size: cover;
background-position: center;
display: inline-block;
vertical-align: middle;
}
.role-indicators .role-indicator .indicator-item .item-head .role-name{
width: calc(100% - 86px);
vertical-align: middle;
display: inline-block;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list{
position: relative;
height: 56px;
cursor: pointer;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list:nth-of-type(even){
background: #F8F8F8;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list:nth-of-type(odd){
background: #FFF;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-view{
display: block;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-edit{
display: none;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-edit .hr1-form-input{
margin-top: 12px;
vertical-align: middle;
width: 72px;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-edit .hr1-form-input input[type=text]{
text-align: right;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-edit .hr1-form-select{
vertical-align: middle;
margin: 0 12px;
width: 126px;
font-size: 12px;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-edit .hr1-form-select .hr1-form-input{
width: inherit;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-edit .hr1-form-select .hr1-form-input input[type=text]{
text-align: left;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-edit .hr1-form-number {
width: auto;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .list-edit .hr1-form-number div:last-child button[type=button] {
display: none;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list:hover .indicator-name{
width: calc(100% - 136px);
}
.role-indicators .role-indicator .indicator-item .item-body .item-list:hover .icon-edit-circle, .role-indicators .role-indicator .indicator-item .item-body .item-list:hover .icon-delete{
display: inline-block;
vertical-align: middle;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list:hover .weight{
margin-bottom: 4px;
display: inline-block;
font-size: 16px;
vertical-align: middle;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list.edit{
box-shadow: 0 0 10px 0 rgba(0,0,0,0.30);
z-index: 1;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list.edit .list-view{
display: none;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list.edit .list-edit{
display: block;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list.edit .icon-edit-circle, .role-indicators .role-indicator .indicator-item .item-body .item-list.edit .icon-delete{
display: inline-block;
vertical-align: top;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list.edit .weight{
margin: 12px 0 0 4px;
display: inline-block;
font-size: 16px;
vertical-align: middle;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .icon-edit-circle, .role-indicators .role-indicator .indicator-item .item-body .item-list .icon-delete{
display: none;
font-size: 14px;
color: #1799C7;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .function-right{
float: right;
padding-top: 20px;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .icon-edit-circle, .role-indicators .role-indicator .indicator-item .item-body .item-list .icon-delete{
margin-right: 12px;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .indicator-name{
margin-left: 12px;
width: calc(100% - 82px);
line-height: 56px;
font-size: 12px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: inline-block;
vertical-align: middle;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .hr1-circle{
margin-right: 12px;
font-size: 12px;
vertical-align: middle;
display: inline-block;
}
.role-indicators .role-indicator .indicator-item .item-body .item-list .icon-tick{
margin: 12px 12px 0 18px;
font-size: 16px;
display: inline-block;
vertical-align: middle;
color: #1799C7;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit{
height: 56px;
font-size: 0;
border-top: 1px solid #E1E5E6;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .hr1-form-input{
margin-top: 12px;
vertical-align: middle;
width: 72px;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .hr1-form-input input[type=text]{
text-align: right;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .hr1-form-select{
vertical-align: middle;
margin: 0 12px;
width: 126px;
font-size: 12px;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .hr1-form-select .hr1-form-input{
width: inherit;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .hr1-form-select .hr1-form-input input[type=text]{
text-align: left;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .hr1-form-number {
width: auto;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .hr1-form-number div:last-child button[type=button] {
display: none;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .weight{
margin: 12px 0 0 4px;
display: inline-block;
font-size: 16px;
vertical-align: middle;
}
.role-indicators .role-indicator .indicator-item .item-body .item-edit .icon-plus{
margin: 12px 12px 0 18px;
font-size: 16px;
display: inline-block;
vertical-align: middle;
color: #1799C7;
cursor: pointer;
}
.hr1-circle {
display: inline-block;
text-align: center;
}
.hr1-circle .circle-progress{
width: 20px;
height: 20px;
stroke-dasharray: 255%;
stroke-dashoffset: 255%;
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
fill: none;
vertical-align: middle;
}
.hr1-circle .percent{
margin-left: 6px;
line-height: 20px;
color: #FF8C3F;
vertical-align: middle;
}
</style>
</head>
<body>
<div class="role-indicators">
<div class="role-indicator">
<div class="indicator-item">
<div class="item-body">
<div class="item-list">
<div class="list-view">
<span class="indicator-name">个人指标4</span><span class="function-right">
<div class="hr1-circle">
<svg class="circle-progress" xmlns="http://www.w3.org/2000/svg"><circle stroke="#E1E5E6" stroke-dashoffset="0%" cx="50%" cy="50%" r="40%" stroke-width="2"></circle><circle stroke="#1799C7" stroke-dashoffset="232.05%" cx="50%" cy="50%" r="40%" stroke-width="4"></circle></svg><span class="percent"><!-- react-text: 894 -->9<!-- /react-text --><!-- react-text: 895 -->%<!-- /react-text --></span>
</div>
<span class="icon-edit-circle"></span><span class="icon-delete"></span></span>
</div>
</div>
<div class="item-list">
<div class="list-view">
<span class="indicator-name">个人指标5</span><span class="function-right">
<div class="hr1-circle">
<svg class="circle-progress" xmlns="http://www.w3.org/2000/svg"><circle stroke="#E1E5E6" stroke-dashoffset="0%" cx="50%" cy="50%" r="40%" stroke-width="2"></circle><circle stroke="#1799C7" stroke-dashoffset="196.35%" cx="50%" cy="50%" r="40%" stroke-width="4"></circle></svg><span class="percent"><!-- react-text: 907 -->23<!-- /react-text --><!-- react-text: 908 -->%<!-- /react-text --></span>
</div>
<span class="icon-edit-circle"></span><span class="icon-delete"></span></span>
</div>
</div>
</div>
</div>
</div>
<div class="role-indicator">
<div class="indicator-item">
<div class="item-body">
<div class="item-list">
<div class="list-view">
<span class="indicator-name">组织指标1</span><span class="function-right">
<div class="hr1-circle">
<svg class="circle-progress" xmlns="http://www.w3.org/2000/svg"><circle stroke="#E1E5E6" stroke-dashoffset="0%" cx="50%" cy="50%" r="40%" stroke-width="2"></circle><circle stroke="#1799C7" stroke-dashoffset="127.5%" cx="50%" cy="50%" r="40%" stroke-width="4"></circle></svg><span class="percent"><!-- react-text: 942 -->50<!-- /react-text --><!-- react-text: 943 -->%<!-- /react-text --></span>
</div>
<span class="icon-edit-circle"></span><span class="icon-delete"></span></span>
</div>
</div>
<div class="item-list">
<div class="list-view">
<span class="indicator-name">个人指标1 individua lindex three recent goals</span><span class="function-right">
<div class="hr1-circle">
<svg class="circle-progress" xmlns="http://www.w3.org/2000/svg"><circle stroke="#E1E5E6" stroke-dashoffset="0%" cx="50%" cy="50%" r="40%" stroke-width="2"></circle><circle stroke="#1799C7" stroke-dashoffset="204%" cx="50%" cy="50%" r="40%" stroke-width="4"></circle></svg><span class="percent"><!-- react-text: 955 -->20<!-- /react-text --><!-- react-text: 956 -->%<!-- /react-text --></span>
</div>
<span class="icon-edit-circle"></span><span class="icon-delete"></span></span>
</div>
</div>
</div>
</div>
</div>
<div class="role-indicator">
<div class="indicator-item">
<div class="item-body">
<div class="item-list">
<div class="list-view">
<span class="indicator-name">个人指标2</span><span class="function-right">
<div class="hr1-circle">
<svg class="circle-progress" xmlns="http://www.w3.org/2000/svg"><circle stroke="#E1E5E6" stroke-dashoffset="0%" cx="50%" cy="50%" r="40%" stroke-width="2"></circle><circle stroke="#1799C7" stroke-dashoffset="153%" cx="50%" cy="50%" r="40%" stroke-width="4"></circle></svg><span class="percent"><!-- react-text: 990 -->40<!-- /react-text --><!-- react-text: 991 -->%<!-- /react-text --></span>
</div>
<span class="icon-edit-circle"></span><span class="icon-delete"></span></span>
</div>
</div>
</div>
</div>
</div>
<div class="role-indicator">
<div class="indicator-item">
<div class="item-body">
<div class="item-list">
<div class="list-view">
<span class="indicator-name">组织指标2</span><span class="function-right">
<div class="hr1-circle">
<svg class="circle-progress" xmlns="http://www.w3.org/2000/svg">
<circle stroke="#E1E5E6" stroke-dashoffset="0%" cx="50%" cy="50%" r="40%" stroke-width="2"></circle>
<circle stroke="#1799C7" stroke-dashoffset="127.5%" cx="50%" cy="50%" r="40%" stroke-width="4"></circle>
</svg>
<span class="percent"><!-- react-text: 1025 -->50<!-- /react-text --><!-- react-text: 1026 -->%<!-- /react-text --></span>
</div>
<span class="icon-edit-circle"></span><span class="icon-delete"></span></span>
</div>
</div>
<div class="item-list">
<div class="list-view">
<span class="indicator-name">个人指标2</span><span class="function-right">
<div class="hr1-circle">
<svg class="circle-progress" xmlns="http://www.w3.org/2000/svg"><circle stroke="#E1E5E6" stroke-dashoffset="0%" cx="50%" cy="50%" r="40%" stroke-width="2"></circle><circle stroke="#1799C7" stroke-dashoffset="224.4%" cx="50%" cy="50%" r="40%" stroke-width="4"></circle></svg><span class="percent"><!-- react-text: 1038 -->12<!-- /react-text --><!-- react-text: 1039 -->%<!-- /react-text --></span>
</div>
<span class="icon-edit-circle"></span><span class="icon-delete"></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
问题:左右间距不是预期结果,解决问题方法做如下修改,为什么这么做可以?
.role-indicators .role-indicator{
font-size: 0;
vertical-align: top;
display: inline-block;
width: calc((100% - 60px) / 4);
min-width: 288px;
margin: 0 0 12px 12px;
}
.role-indicators .role-indicator .indicator-item{
width: 100%;
background: #FAFAFA;
box-shadow: 0 0 10px 0 rgba(0,0,0,0.25);
display: inline-block;
vertical-align: top;
}
写一个猜测吧。
.indicator-name
或者indicator-item
的calc(100% - ***)
引起的;inline-block
的宽度由内容撑开,但是子元素的宽度又calc(100% - ***)
依赖父元素的宽度。