-1

私はプログラミングに非常に慣れておらず、現在ウェブサイトのコーディングを試みています。過去 2 日間で約 5 時間を費やして、さまざまなブラウザーで正しく並べ替えようとしましたが、いくつかの問題が発生しています。最初に、この質問が以前にどこかで回答されていたら申し訳ありません。私と同様の問題に対する多くの解決策を見てきましたが、完全に機能するものは何もないので、しばらくお待ちください. まず、さまざまなブラウザーでランダムな場所に表示されるという問題があります。CSS でこれを修正しようとすると、他のブラウザーで新しい問題が発生します。次に、ブラウザー ウィンドウのサイズが変化すると、ページ上のすべての要素がウィンドウの外に隠れるのではなく、移動して重なり始めます。私が抱えている 3 つ目の問題 (一種) は、私のコードが見栄えが悪いことです。-5% のマージンを必要とする他の要素と並べるために、一部の要素に -4.5% のマージンが必要な理由がわかりません。そもそも、特定の要素にマイナスのマージンを設定しなければならない理由がわかりません! あなたの助けと、私が郵便に行くのを防いでくれて、前もって感謝します.

ジョシュ

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>Horton Computer Solutions Home</title>
    <link href="css/styles.css" media="screen" rel="stylesheet" type="text/css" />
</head>

<body>
    <div id="page">
        <div id="site_title", style="float:left">

  <span class="titleleft">Horton</span>|<span class="titleright">Computer Solutions</span>
</div>
            <div id="title_bar", style="float:right">
                <ul>
                    <pre><a href="#">Home</a>    <a href="#">About Us</a>    <a href="#">Services</a>    <a href="#">Guarantee</a>    <a href="#">Blog</a>    <a href="#">Contact</a></pre>
                </ul>
                <br style="clear:both"/>
            </div>
<div id="mainContent">
    <div id="subContent1">
    </div>
    <div id="subContent2">
    </div>
    <div id="subContent3">
    </div>
</div>
</div>
</body>
</html>

そして、CSS

/* language: css */
BODY
{
    font-family: Calibri, Arial, Helvetica, "Helvetica Neue", "Times New Roman";
    font-size: 16px;
    color: #FFF;
    text-align: left;
    background-color: #062134;
    margin: auto;
    padding: 20px 0 60px;
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 1;
}
A
{
    font-family: Helvetica;
}
DIV#title_bar UL A
{
    text-decoration: none;
    color: #FFFFFF;
}
DIV#title_bar UL A:hover
{
    text-decoration: underline;
    color: #FFFFFF;
}
DIV#title_bar UL A:visited
{
    text-decoration: none;
    color: #FFFFFF;
}
DIV#site_title
{
    font-family: Helvetica;
    font-weight: bold;
    font-size: 27px;
    color: #FFFFFF;
    margin: -4.5% 0 0 6.9%;
}
DIV#title_bar
{
    font-family: Helvetica;
    font-size: 16px;
    color: #FFFFFF;
    list-style: none;
    margin: -5% auto auto 40%;
    text-align: center;
    position: absolute;
}
DIV#contentBox
{
    background-color: #1468A8;
    border-style: none;
    width: 338px;
    height: 185px;
    padding: 19px;
}
#site_title .titleleft
{
    color: #FFFFFF;
}
#site_title .titleright
{
    color: #46C8FF;
}
DIV#mainContent
{
    border: 1px solid #FFFFFF;
    /*+box-sizing:border-box;*/
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    width: 950px;
    height: 1135px;
    background-color: #FFFFFF;
    margin: 10% 6%;
    padding: 15px;
}
DIV#subContent1
{
    color: #FFFFFF;
    width: 292px;
    height: 255px;
    background-color: #000000;
    margin: 440px 0 0;
}
DIV#subContent2
{
    color: #FFFFFF;
    width: 292px;
    height: 255px;
    background-color: #000000;
    margin: -255px 0 0 313px;
}
DIV#subContent3
{
    color: #FFFFFF;
    width: 292px;
    height: 255px;
    background-color: #000000;
    margin: -255px 0 0 626px;
}
#site_title .floatleft
{
    float: left;
    position: relative;
    left: 0px;
    top: 0px;
}
#title_bar .floatright
{
    float: right;
    position: relative;
    left: 0px;
    top: 0px;
}
4

5 に答える 5

2

あなたのコードのセマンティックはどこにでもあります。問題が発生していても驚くことではありません。クロス ブラウザーの問題を解決する前に、コードが検証されていることを確認する必要があります (http://validator.w3.org/)。

まず、複雑な doctype をやめて、HTML5 の doctype を使用することをお勧めします。これは厳密で、どこでも機能します。できれば、移行用の Doctype には常に近づかないでください。

そう

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

になる

<!DOCTYPE html>
<html>

要素に複数の属性を設定する場合、コンマは必要ないので

<div id="title_bar", style="float:right">

になる

<div id="title_bar" style="float:right">

スタイル属性を避けてください。ここでは、ほとんどの要素に、スタイル シートからスタイルを設定できる ID があります (http://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-悪いこと/)

90% の場合、clear:both は必要ありません。コンテナー要素に overflow:hidden を配置するだけで、フローティングされた子をクリアするのに十分です。

UL 要素は LI 要素を含まなければならない

<ul>
    <pre><a href="#">Home</a>....</pre>
</ul>

になる

<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>

さまざまなデバイスに複数のファイルを提供する場合を除き、CSS のリンク タグを挿入する場合、media="screen" 部分は必要ありません。属性が設定されていない場合、これがデフォルト値です。

CSS ファイル内のタグを参照する際に大文字を使用しない場合、それはかなり古い方法であり、実際には使用されていません (また、大文字を使用している「有名な」開発者が見られないことを好むと主張する人もいるかもしれません)。

スタイリングの問題のために、BR style="clear:both" はメニュー要素の中にあります。タイトルとメニューの両方をクリアするために後である必要があります (また、CSS でラッパーを持ち、overflow:hidden を持っていると言ったように) 、コンテンツからヘッダーをより適切に分離することもできます)

float:left + position:relative 衝突の種類。また、position:relative を設定する場合、top:0 と left:0 を設定する必要はありません。これは、要素が position:relative の状況になる場所です。

少なくとも、あなたを正しい方向に向けるか、何らかの形で役立つはずだと思います:)

于 2012-04-12T19:04:48.060 に答える
1

のようなコメント

<!-- language: css -->

css ファイルでは許可されていません。のみ使用

/* language: css */

コメントします。

于 2012-04-12T18:43:26.973 に答える
1

コードをすべてのブラウザで同じように動作させたい場合。スタイルを破棄して、リセット スタイル シートから始めます: (google: reset stylesheet, first link)。

フォーマットはすべてのブラウザーで同じになる可能性が高くなります (個々のブラウザーの制限を除きます。つまり、ie6、7 では css3 はありません)。ブラウザのスタイルの違いが解消されると、フォーマットが簡単になると思います。

于 2012-04-12T19:52:57.550 に答える
0

2番目の質問の解決策

  <body>
   <center>
     //do all here
  </center>
 </body>
于 2012-04-12T19:40:04.973 に答える