나머지 영역의 %를 채우기 위해 CSS 설정 너비


82

약간 쓰레기 제목으로 죄송합니다. 나는 이것을 더 잘 설명하는 방법을 생각할 수 없었다.

내 사이트에 Google 프렌즈 회원 가젯을 구현하려고합니다 (방금 계획에 들어갔고 적어도 테스트를 위해 큰 재 설계없이 삽입하고 싶습니다).

내 문제는 다음과 같습니다.

기본 페이지 (본문)의 너비가 90 % 인 컨테이너 div가 있습니다. 이 안에 div를 오른쪽으로 띄우고 너비를 300px로 설정하고 그 안에 Google 가젯을 넣습니다. 내가 원하는 것은 div가 Google 가젯 div 왼쪽에 남아있는 공간의 95 %를 채울 수 있도록하는 것입니다.

px와 %를 div 및 너비와 혼합 할 수 있는지 모르겠습니다.

이해가 되길 바랍니다.

감사


답변:


70

그것은. 반 유체 레이아웃을 찾고 있습니다. 퀘스트는 원래 CSS 구현의 성배였습니다 ...하지만 그 링크에서 볼 수 있듯이 (3 열을 수행하고 2는 고정되었지만 변경하기 쉽습니다) 오랫동안 해결 된 문제입니다 =)


완벽 해 보입니다. 감사합니다. 나는 주말에 이것으로 바이올린을 가질 것이다.
Jon

44
CSS가 레이아웃을위한 좋은 도구와는 거리가 멀다는 두려움을 재확인하는 기사입니다.
s4y

11
@Sidnicious 제 빵과 버터 작업으로 [디자인을 웹 사이트로 변환하는] 작업을하는 사람으로서, 이전에 해왔거나 그 이후로 제안 된 다른 어떤 것보다 훨씬 낫다고 말할 수 있습니다. 완벽하지 않고 어떻게 작동하는지 알아야합니다 ...하지만 일단 수행하면 간단합니다.
Oli

그러나 열의 너비를 변경하려면 모든 곳에서 값을 편집해야합니다. "작동한다면 어떤 대가를 치르더라도 건드리지 말고 비판하지 마십시오"라는 성가신 개념이 있지만 레이아웃은 훨씬 더 쉬울 수 있습니다. %와 px를 혼합하고 다른 값을 참조하면 모든 것이 훨씬 더 간단 해집니다.
조나단.

1
@홍옥. 이것이 사실이라는 데는 의심의 여지가 없습니다. CSS의 라이브 변수와 예술은 일을 훨씬 더 쉽게 만들어 주지만 우리에게는 없습니다. 가소성을 분해하려면 LESS / SASS / etc를보십시오. 그들은 절반의 해결책입니다.
Oli

0

저는 여기저기서 여러 잠재적 인 해결책을 살펴본 후 빠른 실험을했습니다. 내가하려는 것은 유동적이고 고정 된 행과 열을 혼합하는 것이 었습니다.

이것이 내가 끝낸 것입니다.

http://jsbin.com/hapelawake


0

float 및 clearfix를 피하려면 플렉스 레이아웃을 사용하십시오.

.main {
  display: flex;
  width: 90%;
}
.col1 {
  flex-grow: 1;
}
.col2 {
  width: 300px;
  margin-left: 5%;
}
<div class="main">
  <div class="col1" style="background: #518cf3;">Left column</div>
  <div class="col2" style="background: #94d0bb;">Right column</div>
</div>

참고 : 지원되는 브라우저에서 필요한 경우 가변 공급 업체 접두사를 추가 합니다 .


-1

반응 형 빌드마다 나머지 공간을 확인하고 "나머지"요소의 너비를 동적으로 설정하는 jQuery 또는 JS를 사용하여 알고리즘을 만들어야합니다. 빌드가 응답하지 않는 경우 간단한 수학적 계산을 수행하여 요소 너비를 테스트하고 설정할 수 있습니다.

액체 응답 그리드 기반 미디어 시스템을 구축하는 동안 유사한 문제가 발생했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.