DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> YUI網頁布局:自適應寬度的輸入框
YUI網頁布局:自適應寬度的輸入框
編輯:CSS詳解     

YUI中有一種布局思想:柵格決定寬度,內容決定高度,今天討論的是自適應寬度的輸入框,先上代碼:

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>寬度自適應輸入框</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/3.0.0/build/cssreset/reset-min.CSS">
<style>
.col{padding:10px;width:500px;background-color:yellow;}
.fluid-input{display:inline-block;width:100%;overflow:hidden;}
.fluid-input-inner{display:block;padding-right:10px;#zoom:1;}
.fluid-input .text, .fluid-input textarea{border:2px #ccc solid;padding:3px;width:100%;}
.fluid-input textarea{height:300px;}
</style>
</head>

<body>

<div class="col">
    <b class="fluid-input"><b class="fluid-input-inner"><input class="text" type="text"></b></b>
    <b class="fluid-input"><b class="fluid-input-inner"><textarea></textarea></b></b>
</div>

</body>

</Html>

簡單說一下原理:

為了有較好的體驗,input[type='text']及textarea一般會有border值及padding值(鄙視某些padding設為0滴淫兒),利用如下公式:

.fluid-input-inner{padding-right:輸入框左邊框 + 輸入框右邊框 + 輸入框左padding + 輸入框右padding}

讓輸入框繼承fluid-input-inner的寬度即可實現自適應;而IE6有個寬度超出自動撐開的bug,故再多套一層fluid-input,寬度100%,溢出隱藏即可。

col寬度隨意,在寬度自適應布局中默認為auto,這裡方便演示定了寬度。

這裡由內而外解說,不過命名是由外而內的。

更進一步

focus時border變為4px咋整?

問的好(其實是偶自己在問),輸入框focus後增加class=”focus”,即變為:

<textarea class="focus"></textarea>

CSS:

.focus{position:relative;left:-2px;border-width:4px !important;}

———————— 鄉民問答分隔線 ————————-

美女@jeannewoo反饋了個bug,IE6下textarea輸入文字的時候就自己撐開了(昨晚下班路上@ivane也跟我說過,不過我沒當回事,嘿~),我試了一下果真如此,解決方法很簡單:觸發fluid-input-inner的hasLayout即可。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved