반응형
테두리를 축소하는 방법 (div에서)?
다음과 같은 마크 업이 있다고 가정합니다. http://jsfiddle.net/R8eCr/1/
<div class="container">
<div class="column">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
<div class="column">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
<div class="column">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
...
</div>
그런 다음 CSS
.container {
display: table;
border-collapse: collapse;
}
.column {
float: left;
overflow: hidden;
width: 120px;
}
.cell {
display: table-cell;
border: 1px solid red;
width: 120px;
height: 20px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
나는 외부 div와 display: table; border-collapse: collapse;
셀이 있는데 display: table-cell
왜 여전히 붕괴되지 않습니까? 내가 여기서 무엇을 놓치고 있습니까?
그건 그렇고 열에 가변 수의 셀이 있으므로 한쪽에만 테두리를 가질 수 없습니다.
여기에 데모가 있습니다
먼저 구문 오류를 수정해야합니다.
display: table-cell;
아니 diaplay: table-cell;
.container {
display: table;
border-collapse:collapse
}
.column {
display:table-row;
}
.cell {
display: table-cell;
border: 1px solid red;
width: 120px;
height: 20px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
디스플레이 테이블을 사용하는 대신 단순한 음수 여백을 사용하십시오.
fiddle JS Fiddle 에서 업데이트 됨
.container {
border-style: solid;
border-color: red;
border-width: 1px 0 0 1px;
display: inline-block;
}
.column {
float: left; overflow: hidden;
}
.cell {
border: 1px solid red; width: 120px; height: 20px;
margin:-1px 0 0 -1px;
}
.clearfix {
clear:both;
}
대신 border
사용 box-shadow
:
box-shadow:
2px 0 0 0 #888,
0 2px 0 0 #888,
2px 2px 0 0 #888, /* Just to fix the corner */
2px 0 0 0 #888 inset,
0 2px 0 0 #888 inset;
데모 : http://codepen.io/Hawkun/pen/rsIEp
당신은 당신의 열 display: table-row
대신에 사용해야 float: left;
하고 분명히 @Hushme가 당신 diaplay: table-cell
을 수정해야 합니다.display: table-cell;
.container {
display: table;
border-collapse: collapse;
}
.column {
display: table-row;
overflow: hidden;
width: 120px;
}
.cell {
display: table-cell;
border: 1px solid red;
width: 120px;
height: 20px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
마이너스 여백을 사용할 수도 있습니다.
.column {
float: left;
overflow: hidden;
width: 120px;
}
.cell {
border: 1px solid red;
width: 120px;
height: 20px;
box-sizing: border-box;
}
.cell:not(:first-child) {
margin-top: -1px;
}
.column:not(:first-child) > .cell {
margin-left: -1px;
}
<div class="container">
<div class="column">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
<div class="column">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
<div class="column">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
<div class="column">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
<div class="column">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</div>
</div>
Why not use outline? it is what you want outline:1px solid red;
Example of using border-collapse: separate; as
ol[type="I"]>li{
display: table;
border-collapse: separate;
border-spacing: 1rem;
}
참고URL : https://stackoverflow.com/questions/17915865/how-to-make-borders-collapse-on-a-div
반응형
'developer tip' 카테고리의 다른 글
장고 파일 필드 삭제 (0) | 2020.10.28 |
---|---|
OnGlobalLayoutListener : 지원 중단 및 호환성 (0) | 2020.10.28 |
npm / yeoman 설치-sudo없이 각진 생성기 (0) | 2020.10.28 |
Python : 런타임에 메서드 및 속성 변경 (0) | 2020.10.28 |
벡터의 C ++ 11 emplace_back (0) | 2020.10.27 |