我的网站有问题,我想在标题中有一张名为banner.png的图片,我应该使用标题而不是div,因为这是html5。
这是index.html文件
<!-- HTML 5 -->
<!DOCTYPE html>
<html>
<head>
<title>Erling's website</title>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<header>
</header>
<body>
</body>
</html>
这是样式表
header {
background-image: url("img/banner.png");
background-repeat: no-repeat;
height: 15%;
position: absolute;
width: inherit;
}
我在检查元素时找到了图片,但看起来高度不起作用。
header {
/*DEMO*/background-color: red;
background-image: url("img/banner.png");
background-repeat: no-repeat;
height: 15%;
position: absolute;
width: inherit;
}
<!-- HTML 5 -->
<!DOCTYPE html>
<html>
<head>
<title>Erling's website</title>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<header>
</header>
<body>
</body>
</html>
答案 0 :(得分:1)
问自己:15%的内容?
如果您使用浏览器的开发者工具并从打开的窗口中选择html
或body
标记,您将看到html和正文没有任何高度。 15%的0 = 0,因此标题必须具有固定的高度,例如:230px
,或者您可以在CSS文件中添加此样式:
Html,body {position:relative;height:100%;}
答案 1 :(得分:0)
使用标题添加
的上述百分比高度html, body {
height: 100%;
}
或者将标题上的高度更改为填充底部。
header {
padding-bottom: 30%;
}
答案 2 :(得分:0)
上述答案将解决问题,但如果您因任何原因想要在标题中将高度设置为%,则需要将html的大小设置为100%,以便标题获得15%的标题。
html{
height:100%;
float:left;
}
答案 3 :(得分:0)
您可以使用view units,Private Sub cbLinqQuery_CheckedChanged(sender As Object, e As EventArgs) Handles cbLinqQuery.CheckedChanged
SafeCheckChg(cbDataTable, AddressOf cbDataTable_CheckedChanged, cbLinqQuery.Checked)
SafeCheckChg(cbArray, AddressOf cbArray_CheckedChanged, cbLinqQuery.Checked)
btnDefaultBoundData_Click(sender, e)
End Sub
Private Sub SafeCheckChg(ByRef cb As CheckBox, ByRef handler As EventHandler, checked As Boolean)
RemoveHandler cb.CheckedChanged, handler
cb.Checked = checked
AddHandler cb.CheckedChanged, AddressOf handler.Clone
End Sub
获取视图高度,vh
获取视图宽度JS Fiddle
vw
答案 4 :(得分:0)
当您说height: 15%;
时,您的意思是标题应该取{父母的{1}}。这没有任何效果,因为您没有设置父{J} 15%
的高度。您要么必须给出身高,要么使用body
而不是pixels
percentage
答案 5 :(得分:0)
我终于找到了一个解决方案:请注意,宽度也不起作用
header {
background-color: red; /* red for DEMO */
background-image: url("img/banner.png");
background-repeat: no-repeat;
height: 15%;
position: absolute;
width: inherit;
}
html, body {
height: 100%; /* fix height*/
width: 100%; /* fix width */
margin: 0; /* fix width, or margin: 0 -5px; in header {} */
}
<!-- HTML 5 -->
<!DOCTYPE html>
<html>
<head>
<title>Erling's website</title>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<header>
</header>
<body>
</body>
</html>
关于此问题的另一篇文章:Percentage Height HTML 5/CSS,它还提到了使用height: 15vh;
答案 6 :(得分:0)
<header>
元素在html中的位置
将<header>
元素作为<html>
元素的子元素是无效的html。根据{{3}},您的HTML无效。
您必须将<header>
元素移动到<body>
元素内。
这里发生的部分原因是因为<header>
元素位于<body>
元素之前,因此文档模型必须创建<body>
元素以包含<header>
元素所以你的<body>
元素被忽略了。
将<header>
标记移至<body>
内并从那里开始。
修复后,您可以处理尺寸问题。由于<body>
元素中没有任何内容,因此宽度将为0.您可以通过为主体提供100%的宽度来强制它填充框架,并且标题图像将起作用。
body {
width: 100%;
}
如果您希望标题为可见窗口高度的15%,则更改高度以使用vh
(视口高度)单位,该单位是可见窗口高度的百分比。
header {
[...]
height: 15vh;
}