[英]CSS: gradient header 100% width of screen fine unless page scrolls
這個讓我感到難過,所以...走了。
我有一個漸變標題。 我希望它的寬度是屏幕的寬度。 調整窗口大小時,除了滾動到側面時,所有這些都工作正常。 然后我的漸變變成空白。
內容需要保持較大的固定寬度。 在我實際頁面的HTML中,標頭包含在包裝器以及另一個div中。 如果解決方案是CSS中的HTML格式,那將是很好的選擇,但是如果前者是不可能的,那么javascript和jquery可以解決。
我做了一個js小提琴來顯示問題。 http://jsfiddle.net/WvHYM/18/
這是HTML
<body>
<div id="wrapper">
<div id="header"> </div>
<div id="content">This is the content</div>
</div>
</body>
和CSS它包括漸變,所以它是野獸
html, body{
width:100%;
}
#wrapper{
width:100%;
}
#header {
height: 75px;
width: 100%;
background: #7d7e7d; /* Old browsers */ /* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64, PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM3ZDdlN2QiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMGUwZTBlIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-radial-gradient(center, ellipse cover, #7d7e7d 0%, #0e0e0e 100%); /* FF3.6+ */
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #7d7e7d), color-stop(100%, #0e0e0e)); /* Chrome,Safari4+ */
background: -webkit-radial-gradient(center, ellipse cover, #7d7e7d 0%, #0e0e0e 100%); /* Chrome10+,Safari5.1+ */
background: -o-radial-gradient(center, ellipse cover, #7d7e7d 0%, #0e0e0e 100%); /* Opera 12+ */
background: -ms-radial-gradient(center, ellipse cover, #7d7e7d 0%, #0e0e0e 100%); /* IE10+ */
background: radial-gradient(ellipse at center, #7d7e7d 0%, #0e0e0e 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7d7e7d', endColorstr='#0e0e0e', GradientType=1); /* IE6-8 fallback on horizontal gradient */
}
#content {
width: 600px;
height: 200px;
background-color: #ccc;
padding: 20px;
font-family: Lucida Sans Unicode;
}
這是問題的一些圖片。
答案將不勝感激。 :)
HTML
<body>
<div class="wrapper"><div> </div></div>
<div>This is the content</div>
</body>
CSS
body{
width:100%;
}
.wrapper {
width:100%;
}
div:first-of-type {
height:75px;
width:100%;
background: #7d7e7d;
/* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;
base64, PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM3ZDdlN2QiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMGUwZTBlIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-radial-gradient(center, ellipse cover, #7d7e7d 0%, #0e0e0e 100%);
/* FF3.6+ */
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #7d7e7d), color-stop(100%, #0e0e0e));
/* Chrome,Safari4+ */
background: -webkit-radial-gradient(center, ellipse cover, #7d7e7d 0%, #0e0e0e 100%);
/* Chrome10+,Safari5.1+ */
background: -o-radial-gradient(center, ellipse cover, #7d7e7d 0%, #0e0e0e 100%);
/* Opera 12+ */
background: -ms-radial-gradient(center, ellipse cover, #7d7e7d 0%, #0e0e0e 100%);
/* IE10+ */
background: radial-gradient(ellipse at center, #7d7e7d 0%, #0e0e0e 100%);
/* W3C */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7d7e7d', endColorstr='#0e0e0e', GradientType=1);
/* IE6-8 fallback on horizontal gradient */
}
div:last-of-type {
width:600px;
height:200px;
background-color:#ccc;
padding:20px;
font-family:Lucida Sans Unicode;
}
}
您的first-of-type
和last-of-type
僅對應於<p>
標記。 要解決這個問題,你需要一個<div>
內的另一個<div>
嘗試這個:
<div id="header">
<div id="header-gradient">
//your content
</div>
</div>
對於CSS:
#header {
width: 100%;
}
#header-gradient:first-of-type {
//style here
}
#header-gradient:last-of-type {
//style here
}
我在這里找到了答案: 如何使div不大於其內容?
基本上,如果您希望寬度為100%的父級具有動態固定寬度的子級,則需要將父級元素設置為顯示內聯塊,並且顯示寬度為auto(這是默認值,這意味着寬度也可以保留為completley。)
重要的CSS
親
#wrapper{
display: inline-block;
}
兒童
#content {
width:600px;
height:200px;
background-color:#ccc;
padding:20px;
font-family:Lucida Sans Unicode;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.