CSS에서 어떻게 이런 식으로 할 수 있습니까?
width: 100% - 100px;
나는 이것이 매우 간단하다고 생각하지만 그것을 보여주는 예제를 찾기는 약간 어렵습니다.
width: calc(100% - 100px);
한다고 답했습니다. 몇 가지 답을 적어주십시오. 나는 질문자가 그의 질문을 업데이트하기를 바랍니다. :)
CSS에서 어떻게 이런 식으로 할 수 있습니까?
width: 100% - 100px;
나는 이것이 매우 간단하다고 생각하지만 그것을 보여주는 예제를 찾기는 약간 어렵습니다.
width: calc(100% - 100px);
한다고 답했습니다. 몇 가지 답을 적어주십시오. 나는 질문자가 그의 질문을 업데이트하기를 바랍니다. :)
답변:
최신 브라우저는 이제 다음을 지원합니다.
width: calc(100% - 100px);
지원되는 브라우저 버전 체크 아웃 목록을 보려면 calc ()를 CSS 단위 값으로 사용할 수 있습니까?
jQuery 폴 백이 있습니다. CSS 너비 : calc (100 % -100px); jquery를 사용하는 대안
calc(100% - 6px)
예를 들어 사용했을 때 calc(94%)
다음과 같이 표시되는 것을 알았습니다. 다음과 같이 이스케이프해야합니다width: calc(~"100% - 6px");
-
(또는 +
) 문자 주위에 공백이 있어야합니다 . 이것은 작동합니다 : calc(100% - 100px);
그리고 이것은하지 않습니다 :calc(100%-100px);
padding: 0.25em; width: calc(100% - 2 * 0.25em - 2em);
, 0.25em
수정해야한다면 지금 두 곳에서 변경해야 할 것 입니다.
당신은 이것을 시도 할 수 있습니다 ...
<!--First Solution-->
width: calc(100% - 100px);
<!--Second Solution-->
width: calc(100vh - 100px);
폭스 바겐 : 뷰포트 너비
vh : 뷰포트 높이
calc(100% - 6px)
예를 들어 사용했을 때 calc(94%)
다음과 같이 표시되는 것을 알았습니다. 다음과 같이 이스케이프 처리해야합니다width: calc(~"100% - 6px");
내 코드 및 IE6에서 작동합니다.
<style>
#container {margin:0 auto; width:100%;}
#header { height:100px; background:#9c6; margin-bottom:5px;}
#mainContent { height:500px; margin-bottom:5px;}
#sidebar { float:left; width:100px; height:500px; background:#cf9;}
#content { margin-left:100px; height:500px; background:#ffa;}
</style>
<div id="container">
<div id="header">header</div>
<div id="mainContent">
<div id="sidebar">left</div>
<div id="content">right 100% - 100px</div>
<span style="display:none"></span></div>
</div>
콘텐츠 div의 컨테이너가 100 %-100px가되어야합니다.
#container {
width: 100%
}
#content {
margin-right:100px;
width:100%;
}
<div id="container">
<div id="content">
Your content here
</div>
</div>
</div>
콘텐츠 div가 넘치면 마지막 직전에 지우기 div를 추가해야 할 수도 있습니다 .
<div style="clear:both; height:1px; line-height:0"> </div>
본문 여백을 0으로 설정하고 외부 컨테이너의 너비를 100 %로 설정하고 왼쪽 / 오른쪽 여백이 50px 인 내부 컨테이너를 사용하면 효과가있는 것 같습니다.
<style>
body {
margin: 0;
padding: 0;
}
.full-width
{
width: 100%;
}
.innerContainer
{
margin: 0px 50px 0px 50px;
}
</style>
<body>
<div class="full-width" style="background-color: #ff0000;">
<div class="innerContainer" style="background-color: #00ff00;">
content here
</div>
</div>
</body>
부트 스트랩 패널로 작업하면서 헤더 패널에 "삭제"링크를 배치하는 방법을 찾고 있었는데 긴 이웃 요소로 인해 가려지지 않습니다. 그리고 해결책은 다음과 같습니다.
html :
<div class="with-right-link">
<a class="left-link" href="#">Long link header Long link header</a>
<a class="right-link" href="#">Delete</a>
</div>
CSS :
.with-right-link { position: relative; width: 275px; }
a.left-link { display: inline-block; margin-right: 100px; }
a.right-link { position: absolute; top: 0; right: 0; }
물론 들여 쓰기에 따라 "상단"및 "적절한"값을 수정할 수 있습니다. 출처
모든 공간을 확인했을 때만 작동했습니다. 그래서, 이런 식으로 작동하지 않았다 : width: calc(100%- 20px)
또는 calc(100%-20px)
완벽하게 함께 일했다 width: calc(100% - 20px)
.
당신은 할 수 있습니다 :
margin-right: 50px;
margin-left: 50px;
편집 : 내 솔루션이 잘못되었습니다. Aric TenEyck이 게시 한 솔루션은 너비가 100 % 인 div를 사용한 다음 여백을 사용하여 다른 div를 중첩하는 것이 더 정확한 것 같습니다.
width:100%
. 명시 적으로 지정 하거나 절대 위치 지정 width
을 사용하여이를 무시하지 않는 한 div는 컨테이너를 자동으로 채 웁니다 float
. div에 여백을 추가하면 컨테이너가 여백으로 지정된 양보다 적은 컨테이너를 채울 수 있습니다.
이 일반적인 시나리오에 유용한 두 가지 기술이 있습니다. 각각의 단점이 있지만 때때로 유용 할 수 있습니다.
상자 크기 : 테두리 상자 에는 항목 너비에 패딩 및 테두리 너비가 포함됩니다. 예를 들어 20px 20px 패딩과 1px 테두리를 가진 div의 너비를 100px로 설정하면 실제 너비는 142px이지만 border-box를 사용하면 padding과 margin은 100px 안에 있습니다.
.bb{
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box;
width: 100%;
height:200px;
padding: 50px;
}
여기에 훌륭한 기사가 있습니다 : http://css-tricks.com/box-sizing/ 여기에 바이올린이 있습니다. http://jsfiddle.net/L3Rvw/
그리고 위치가 있습니다 : 절대
.padded{
position: absolute;
top: 50px;
right: 50px;
left: 50px;
bottom: 50px;
background-color: #aefebc;
}
물론 완벽하지는 않습니다. 상자 크기는 요소가 실제로 100 %-100 픽셀이 아니라 100 % 너비이므로 (자식 div가 될 것이므로) 질문에 정확히 맞지 않습니다. 모든 상황에서 절대 위치를 사용할 수는 없지만 부모 높이가 설정되어있는 한 일반적으로 좋습니다.
CSS는 이벤트에 대한 애니메이션 또는 스타일 수정에 사용할 수 없습니다.
유일한 방법은 주어진 요소의 너비를 반환 한 다음 100px을 빼고 새로운 너비 크기를 설정하는 자바 스크립트 함수를 사용하는 것입니다.
jQuery를 사용한다고 가정하면 다음과 같이 할 수 있습니다.
oldWidth = $('#yourElem').width();
$('#yourElem').width(oldWidth-100);
그리고 네이티브 자바 스크립트로 :
oldWidth = document.getElementById('yourElem').clientWidth;
document.getElementById('yourElem').style.width = oldWidth-100+'px';
CSS 스타일이 100 %로 설정되어 있다고 가정합니다.
표준 모드를 사용하고 있습니까? 이 솔루션은 내가 생각하는 그것에 달려 있습니다.
2 열을 만들려고하면 다음과 같이 할 수 있습니다.
<div id="outer">
<div id="left">
sidebar
</div>
<div id="main">
lorem ispsum etc...
</div>
</div>
그런 다음 CSS를 사용하여 스타일을 지정하십시오.
div#outer
{
width:100%;
height: 500px;
}
div#left
{
width: 100px;
height: 100%;
float:left;
background: green;
}
div#main
{
width: auto;
margin-left: 100px; /* same as div#left width */
height: 100%;
background:red;
}
2 열을 원하지 않으면 아마도 제거 할 수 있습니다 <div id="left">
당신은 할 수 없습니다.
그러나 여백을 사용하여 동일한 결과에 영향을 줄 수 있습니다.
이것은 작동합니다 :
margin-right:100px;
width:auto;
짧은 대답은 CSS에서 이것을하지 마십시오. Internet Explorer는 CSS Expressions를 지원하지만 이것은 표준이 아니며 FireFox와 같은 다른 브라우저에서는 지원되지 않습니다.
JavaScript로이 작업을 수행하는 것이 좋습니다.