回答
獨立角落,從圖像的其餘部分。內部(有色)應該用透明背景替換。這樣你將有9層。底層將包含重複的梯度圖像,接下來的4層將包含重複和對齊的頂部,右側,底部和左側邊界圖像。最後4層將包含角落。但是使用這種方法,這個盒子的背景應該是均勻的(沒有漸變,沒有圖像),否則你不得不將陰影作爲半透明的圖像放在PNG中,而這種圖像不適用於圓角和邊框。這不適用於IE6。
另一種方法是繪製一張表格,每張圖片3x3。這種方法也適用於IE6。
另一種方法是將盒子的9個div相鄰堆疊起來,並通過讀取中央內容div的大小來設置使用Javascript的非內容div的大小。這種方法也適用於IE6。
所有3種方法都可以使用CSS2垂直和水平調整框的大小。
9 divs?當真? – roryf 2010-07-13 14:09:13
我遇到過的一些客戶對使用表格非常敏感,但是希望這種類型的東西能夠與IE6等恐龍一起工作。我還有什麼其他選擇? – AlexanderMP 2010-07-13 14:12:26
@ roryf:除非你的盒子有fixezd寬度,好的是... – FelipeAls 2010-07-13 20:15:37
這將在Firefox中工作。其他瀏覽器中也有類似的屬性可以產生相同的效果。 alt text http://i28.tinypic.com/2d2d6jc.jpg
<div style="-moz-box-shadow: 0 0 2em gray;-moz-border-radius: 5px;border:4px solid white;">
<div style="-moz-border-radius: 5px;background:-moz-linear-gradient(top, #ff0, #fff);">
aldskfhaklsdhflkashdfklahsdlkfhaklsdhflka <br/>shdflkjhasdklf alksdgh aklsj klsjd<br/>
aldskfhaklsdhflkashdfklahsdlkfhaklsdhflka <br/>shdflkjhasdklf alksdgh aklsj klsjd<br/>
aldskfhaklsdhflkashdfklahsdlkfhaklsdhflka <br/>shdflkjhasdklf alksdgh aklsj klsjd<br/>
aldskfhaklsdhflkashdfklahsdlkfhaklsdhflka <br/>shdflkjhasdklf alksdgh aklsj klsjd<br/>
aldskfhaklsdhflkashdfklahsdlkfhaklsdhflka shdflkjhasdklf alksdgh aklsj klsjd<br/>
aldskfhaklsdhflkashdfklahsdlkfhaklsdhflka shdflkjhasdklf alksdgh aklsj klsjd<br/>
</div>
</div>
我的建議是使用4名的div和四象:
HTML:
<div id="container">
<div id="top"></div>
<div id="content"></div>
<div id="bottom"></div>
</div>
CSS:
#container { background: transparent url(shadow-repeat.jpg) repeat-y; }
#top { background: transparent url(top.jpg) no-repeat; }
#content { background: white url(gradient.jpg) repeat-x; }
#bottom { background: transparent url(bottom.jpg) no-repeat; }
- 陰影repeat.jpg是從中間的1px水平切片(v ertically),其包括白色邊界和陰影
- top.jpg是足夠高以覆蓋頂圓角,並且包括黃色背景
- gradient.jpg盒子是1px的垂直切片包括所述梯度從top.jpg的底部到白色
- bottom.jpg高得足以覆蓋底部的圓角,幷包括白色背景。
這個想法是,容器有白色邊框和兩側的投影,垂直重複,讓你垂直擴展。
頂部div有圓角。由於它是一個JPG格式,它將覆蓋容器背景的硬角,並且位置正確,它仍然看起來很平滑。底部的div也是一樣。
另一個技巧是水平重複的垂直切片。如果內容div位置正確,則可以將它排列起來,使其看起來很平滑。由於它還具有白色背景,因此它將覆蓋由容器的重複背景留在中間的所有殘留物。
這可能需要一點與利潤率和定位亂搞得到的權利,但它的基本思想
編輯 請注意,您還必須設置所有div的寬度,和#的高度頂部和底部。
內容漸變可能無法與div垂直縮放,可能需要可調整大小的背景技巧,如http://css-tricks.com/how-to-resizeable-background -image/ – iamgopal 2010-07-13 14:44:49
正確。漸變本身不會縮放。漸變將從黃色變爲白色,並且任何擴展都將變爲白色。 – 2010-07-13 14:58:18
沒有必要設置寬度。當使用不透明的背景圖像時,3格就足夠了。當使用不透明背景時,div更好地放置在另一個內部,作爲圖層,而不是堆疊。總體而言,該解決方案有幾個可以輕鬆避免的缺點。 – AlexanderMP 2010-07-13 22:10:08
- 1. 用CSS3構建一個盒子
- 2. 用CSS製作一個透明盒子
- 3. 我如何使用CSS創建一個像這樣的盒子。
- 4. CSS - 如何將一個盒子完全居中在另一個盒子中?
- 5. 開關盒(一個盒子與另一個盒子相交)
- 6. 如何使用css&html構建3個盒子堆疊在彼此之上
- 7. 圍繞盒子技術的CSS盒子
- 8. 將盒子對齊到CSS盒子
- 9. CSS盒子浮動
- 10. CSS盒子問題
- 11. 藍圖CSS盒子
- 12. CSS盒子定位
- 13. CSS:鎖定盒子?
- 14. Android:我如何創建一個盒子?
- 15. 創建一個盒子分隔符
- 16. Css右對齊兩個盒子一個在另一個之上
- 17. CSS盒子影子動畫
- 18. 如何使第三個盒子在第二個盒子下移動使用CSS
- 19. 如何將一個盒子放入另一個盒子中3d
- 20. 我可以用CSS <3創建一個漂亮的盒子陰影嗎?
- 21. 用Javascript/CSS生成一個盒子網格
- 22. 在盒子上插入一條線CSS
- 23. 使用jQuery創建多個div盒子
- 24. 切片兩個盒子HTML/CSS
- 25. CSS相同高度的兩個盒子
- 26. 在CSS中連接兩個盒子
- 27. Css兩個盒子左右變換
- 28. 製作一個和HTML裏面一樣大的CSS盒子
- 29. 兩個盒子的CSS陰影爲一個
- 30. CSS盒子陰影消失
如果內容增長,這個盒子會呈現角度還是垂直? – user160820 2010-07-13 14:00:51
看看這裏: http://stackoverflow.com/questions/7089/what-is-the-best-way-to-create-rounded-corners-using-css – JochenJung 2010-07-13 13:57:02
我不想使用邊界半徑道具.. – yasink 2010-07-13 14:00:22