>웹 프론트엔드 >CSS 튜토리얼 >고정된 오른쪽 열 너비, 왼쪽 열 콘텐츠가 먼저 표시되고 적응형 너비 레이아웃(코드 예)

고정된 오른쪽 열 너비, 왼쪽 열 콘텐츠가 먼저 표시되고 적응형 너비 레이아웃(코드 예)

WBOY
WBOY원래의
2016-05-16 12:09:261586검색

이 장에서는 고정된 오른쪽 열 너비를 소개하며, 왼쪽 열의 내용이 먼저 표시되고 동시에 너비에 맞춰 레이아웃이 조정됩니다. 필요한 친구는 참조할 수 있습니다. 그것이 당신에게 도움이 되기를 바랍니다.

작동 방식

#wrapper는 hasLayout을 트리거해야 합니다. 그렇지 않으면 내부 콘텐츠가 이상하게 떠다니는 경우가 있는데, float를 직접 사용하지만 다른 방법을 사용할 수도 있습니다. 실제로 이 예제에서 요구하는 효과를 얻으려면 #wrapper를 사용할 필요조차 없습니다.

#left는 100% 너비를 정의하고 margin:0 0 0 -200px를 사용하여 전체 왼쪽 블록을 왼쪽으로 200px의 오프셋에 배치한 다음 #innerLeft의 margin:0 0 0 200px를 사용하여 밀어냅니다.

#right는 단순한 float일 뿐이며, #innerRight는 많은 효과를 가지며 습관적으로 유지됩니다. 제어를 더 단순하게 만드는 것 외에도 다음 변경 사항에 대해 구조를 변경하지 않고 유지할 수도 있습니다. 공들여 나열한 것.

오른쪽과 왼쪽을 고치는 것 외에도 시간이 있는 친구들이 시도해 볼 수 있습니다

문제가 있습니다

  • IE 브라우저 버전 IE7 이하에서는 최소 너비를 사용할 수 없습니다. 너무 작으면 보기 흉해 보입니다. 다음 글에서 문제를 해결해보겠습니다

확장 기능

  • 왼쪽과 오른쪽 열의 높이를 동일하게 하려면 다음을 참조하세요. 이에 대해: 열 높이 적응 해결(열 높이 동일) 다섯 가지 방법

  • 도 재생할 수 있습니다: 중간 열 너비 고정, 왼쪽 및 오른쪽 열 너비 동일 및 적응형

  • 도 확장 가능 이러한 기능: 최소 높이 100%의 레이아웃 방법과 하단에 바닥글 유지

코드 예:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>固定右栏宽度, 左栏内容先出现同时自适应宽度的布局 - Beautiful Style « 样式之美 » loaoao.com </title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta name="KEYWords" content="fixed,css,xhtml,effect" /> 
<meta name="DEscription" content="固定右栏宽度, 左栏内容先出现同时自适应宽度 " /> 
<meta name="author" content="aoao" /> 
<meta content="all" name="robots" /> 
<link rel="start" href="http://www.loaoao.com" title="Home" /> 
<style type="text/css"> 

body{ 
    font-family:Verdana, Arial, Helvetica, sans-serif; 
    min-width:620px; 
    margin:0; 
    padding:0; 
} 

#wrapper{ 
    float:left; 
    display:inline; 
    margin:0 30px; 
    background-color:#ccc; 
} 
#header,#footer{ 
    clear:both; 
    padding:10px; 
    text-align:center; 
} 
#left{ 
    float:left; 
    width:100%; 
    margin:0 0 0 -200px; 
} 
#innerLeft{ 
    margin:0 0 0 200px; 
    background-color:#efefef; 
} 
#right{ 
    float:left; 
    width:200px; 
    background-color:#ddd; 
} 
.inner { 
    padding:2px 12px; 
} 
p{ line-height:1.6em} 
</style> 
</head> 
<body> 
<div id="wrapper"> 
<div id="header"> 
    <h1>固定右栏宽度, 左栏内容先出现同时自适应宽度的布局</h1> 
</div> 
<div id="left"> 
    <div id="innerLeft" class="inner"> 
     
        <h2>工作原理</h2> 
        <p>#wrapper必须触发hasLayout,不然有时里面的内容会浮得怪怪的,我直接用float的,可以用其他方式。其实如果只是要做到这个例子要的效果连#wrapper都可以不要。
 
        #left定义100%宽度并利用margin:0 0 0 -200px把左边整块放在偏移入左边200px处,再利用#innerLeft的margin:0 0 0 200px再把内容撑出来,
 
        #right只是简单的浮动,#innerRight米多大作用,只是习惯性保留着,除了可以让我们的控制更简单点,还可以为下次改变布局可保持结构不变。</p> 
        <p>除了可以固定右边也可以固定左边,有空的朋友可以尝试一下</p> 
        <h2>存在问题</h2> 
        <ul> 
        <li>IE7以下版本的IE浏览器无min-width,拉太小会很难看。下篇文章再解决</li> 
        </ul> 
        <h2>扩展功能</h2> 
         
        <ul> 
            <li>如果想左右两列等高可以参考这个:<a href="http://www.forest53.com/tutorials/tutorials_show.asp?sortid=1&id=45">解决列高度自适应(列高度相同)的五种方法</a> 
        </li> 
        <li> 
            也可以玩:<a href="http://lab.loaoao.com/demo/layout/fixedmiddle/">固定中栏宽度, 左右两栏宽度相等和自适应</a> 
        </li> 
        <li>还可以扩展这样的功能:<a href="http://my.opera.com/tifa/blog/show.dml/251210">最小高度100%,页脚保持在底部的布局方法</a></li> 
        </ul> 
    </div> 
</div> 

<div id="right"> 
    <div id="innerRight" class="inner"> 
        <p>这只是个简单的例子,希望对初学CSS布局的朋友有帮助。</p> 
        <p>基本还有很多功能可以写进来,怕写得太乱了,还是等下一篇,好骗点流量。</p> 
    </div> 
</div> 
</div> 
</body> 
</html>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.