#navbarと#contentを含む#container divを持つ非常に基本的なサイトを設定しました。ただし、ズームインまたはズームアウトすると、#navbarがゆがみます。リンクをズームインすると、インラインではなく互いの下に押し下げられます。ズームアウトすると、リンク間に余計なパディングが追加されます。どうすればこれを止めることができますか?
HTML:
<div id="navbar">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="top.html">Top</a></li>
<li><strong><a href="free.html">FREE</a></strong></li>
<li><a href="photo.html">Photo</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact Us</a></li>
</ul>
</div>
<div id="content">
<p>Some sample text.<p>
</div>
</div>
CSS:
#container {
position: static;
background-color: #00bbee;
margin-left: 20%;
margin-right: 20%;
margin-top: 7%;
margin-bottom: 15%;
border: 2px solid red;
}
#navbar ul{
list-style: none;
}
#navbar li{
display: inline;
}
#navbar li a{
text-decoration: none;
color: #11ff11;
margin: 3%;
border: 1px dotted orange;
padding-left: 4px;
}
#navbar li a:hover {
background-color: white;
color: green;
}
#navbar {
background-color: #eeeeee;
padding-top: 2px;
padding-bottom: 5px;
border: 1px solid yellow;
}
歪まないようにするにはどうすればよいですか?
また、私はまだCSSにかなり慣れていないので、pxの代わりに%を使用するように教えられました。そうですか?あなたが指摘しなければならない他のことも、私に知らせてください。
前もって感謝します!
この質問にはまだ一定の見解があるため、現在使用しているソリューションを投稿します。
CSSメディアクエリ:
@media screen and (max-width: 320px) {
/*Write your css here*/
}
@media screen and (max-width: 800px) {
}
チェックアウト: CSS-Tricks +デバイスサイズ および Media Queries
ナビゲーションメニューにdivを追加することで修正した同様の問題がありました。その後、次を追加しました
#menu-container {
position: absolute;
white-space: nowrap;
overflow: hidden;
}
これにより、ラッピングが防止されました。それがうまくいくことを願っています。
ズームインの問題を修正するには、min-width
属性を外側のカウンター(#container
または#navbar
?)に追加してみてください。 min-width
を設定すると、ウェブページが指定された幅(300ピクセル)を超えて縮小しようとするのを防ぎます。ズームインしすぎると、<div>
内の要素が次の行にジャンプする代わりに、ナビゲーションバーの縮小が停止し、ページの下部にスクロールバーが表示されます。
例(スタイルシート内):
#navbar {min-width:300px;}
これを実現するもう1つの良い方法は、ページ本体にmin-width属性を適用することです。
例(スタイルシート内):
body {min-width:300px;}
最後に、ナビゲーションバーをページの幅全体に広げたい場合は、スタイルシートで{clear:both;}
を使用します。
ページ上のすべての要素/ divに絶対的な高さと幅を設定するだけです。
または、min/max-width/hightを使用して、さまざまな画面サイズまたはブラウザーウィンドウのサイズ変更時にページレイアウトを調整することもできます。
CSSメディアクエリを使用して、CSSのさまざまなスタイルにブレークポイントを設定します。正しく使用すると、歪みの問題が修正されます。
これは上記の提案によく似ていますが、固定幅のコンテンツ領域があります。全幅を探しているならすみません(; _;)
<style>
body {
margin:0px;
}
#container {
width:990px;
background-color: #00bbee;
margin:0 auto;
border: 2px solid red;
}
#navbar ul {
list-style: none;
}
#navbar li {
display: inline;
}
#navbar li a {
text-decoration: none;
color: #11ff11;
margin: 3%;
border: 1px dotted orange;
padding-left: 4px;
}
#navbar li a:hover {
background-color: white;
color: green;
}
#navbar {
background-color: #eeeeee;
padding-top: 2px;
padding-bottom: 5px;
border: 1px solid yellow;
}
</style>
<div id="container">
<div id="navbar">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="top.html">Top</a></li>
<li><strong><a href="free.html">FREE</a></strong></li>
<li><a href="photo.html">Photo</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact Us</a></li>
</ul>
</div>
<div id="content">
<p>Some sample text.
<p>
</div>
</div>
これは主に、幅またはマージンのプロパティをパーセンテージで設定したためです。その場合は、そのような要素に最大幅を指定してください
ブラウザによって、ズームのさまざまな手法が異なります。それらのすべてに欠点があります。パーセンテージを使用すると、丸め誤差が生じます。簡単な答えはありません。
参照: http://www.codinghorror.com/blog/2009/01/the-two-types-of-browser-zoom.html
うーん.... min-width/min-heightプロパティを追加しようとしましたか?これらのプロパティを#container divに含めることができます。それだけでうまくいくかもしれません。