我希望我的网站标题的宽度与显示器的屏幕一样宽。我尝试过width: 100%
,width: vw
和width: device-width
。所有这些的问题在于,当我调整浏览器窗口的大小时,标题的宽度等于当前视口的宽度,而不是 device-width 。代码如下:
body {
height: 100vh;
width: 100vw;
}
* {
margin: 0;
padding: 0;
font-family: courier;
color: white;
}
header {
display: block;
height: 150px;
width: device-width;
background-color: #666633;
text-align: center;
}
header h1 {
font-size: 2em;
color: white;
}
nav {
width: auto;
margin: auto;
margin-top: 20px
}
<header>
<h1 class="heading"> Syco Scientist Records </h1>
<nav>
<ul>
<li><a href="anupamindex.html" class="active">Home</a>
</li>
<li><a href="ourwork.html">Our Work</a>
</li>
<li><a href="testimonials.html">Testimonials</a>
</li>
<li><a href="projects.html">Projects</a>
</li>
<li><a href="contact.html">Contact Us</a>
</li>
</ul>
</nav>
</header>
正如您在浏览器窗口调整大小时所看到的那样,没有滚动选项。如果我给出宽度(以像素为单位),则导航栏不会折叠,并且在向右滚动时可以看到。
- 即使调整浏览器窗口大小,如何设置标题宽度与显示器屏幕宽度相同?
我认为可行的唯一方法是使用@media
媒体查询,根据监视器宽度为标题设置不同的宽度。
- 对于非移动平台,是否有
device-width
的类似内容?
答案 0 :(得分:4)
为了使屏幕尺寸不是浏览器宽度,您需要使用javascript。你可以使用
screen.width
(http://www.w3schools.com/jsref/prop_screen_width.asp) 然后你可以用它来用javascript设置容器的宽度。
注意:操作系统之间可能存在一些差异
答案 1 :(得分:2)
您可以使用javascript管理屏幕尺寸
检查此示例
<script>
var txt = "";
txt += "<p>Total width/height: " + screen.width + "*" + screen.height + "</p>";
txt += "<p>Available width/height: " + screen.availWidth + "*" + screen.availHeight + "</p>";
txt += "<p>Color depth: " + screen.colorDepth + "</p>";
txt += "<p>Color resolution: " + screen.pixelDepth + "</p>";
document.getElementById("demo").innerHTML = txt;
</script>
答案 2 :(得分:1)
只需使用width: auto
即可。它会根据填充调整宽度。
答案 3 :(得分:0)
请在不使用javascript的情况下尝试此操作
div
{
width: 100vw;
height: 56.25vw;
background: pink;
max-height: 100vh;
max-width: 177.78vh; /* 16/9 = 1.778 */
margin: auto;
position: absolute;
top:0;bottom:0; /* vertical center */
left:0;right:0; /* horizontal center */
}
或
var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
答案 4 :(得分:0)
首先使用元标记作为空洞html主体,然后您可以使用:100%。
答案 5 :(得分:0)
我会用:
width: 100vw;
display: inline-block;
或者我会尝试display: flex;
检查您没有任何地方(在父母身上)position: relative
。
答案 6 :(得分:0)
没有javascript就行不通,但它只有三行...... 这是一个小提琴:https://jsfiddle.net/0yL3fbyf/
我得到屏幕宽度,将其放入变量并将“px”添加到该数字:
var x = screen.width + 'px';
然后我将该变量指定为标题width
。由于某些原因getElementsByTagName("header")
无效,我给标头提供了ID:
var y = document.getElementById('my_header');
y.style.width = x;
答案 7 :(得分:0)
没有jquery / javascript可能很难匹配你需要的元素的宽度/高度。选项是在设备屏幕宽度/高度上设置100%或硬编码。感谢。
答案 8 :(得分:0)
vw(视口宽度),vh(视口高度),vm(最小视口)等相对值非常适合屏幕等设备,其设备大小和分辨率未知或可能会发生变化。
px,em&amp; %是可用于屏幕设计的值。尝试不同的值,看看。 感谢。
答案 9 :(得分:-1)
将标题<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>My app</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" src = "phonegap.js" > </script>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, minimum-scale=1, user-scalable=yes">
<link href='https://fonts.googleapis.com/css?family=Quicksand' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="Mobile_style.css"><link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<link href='https://fonts.googleapis.com/css?family=Quicksand:700' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" src = "phonegap.js" > </script>
<script type="text/javascript" charset="utf-8">
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
// do your thing!
}
</script>
<script type="text/javascript">
window.onload = function()
{
MY JS CODE
}
</script>
</head>
<body onload="onBodyLoad()">
MY HTML
</body>
添加到标题中,因为它可以让您的代码根据使用它的屏幕灵活调整高度。因此,现在您使用任何设备,您的标题高度将相应地自动调整。