2016-06-18 11 views
1

2つのdivを並べて並べるのがよくある質問ですが、私はYouTubeのビデオとチャットボックスを隣り合わせに並べることに少し問題があります。私はスパンを使っているはずです。これは、YouTubeビデオと同じスペースにあるチャットボックスを正しく表示できるからです。私はまだHTMLでロープを学んでいます。こちらのページは現在、次のようになります。DivとYouTubeビデオのサイドアライメント

ここに私の現在のHTMLコードがあり、扱うdiv要素は、ユーチューブのビデオは、「ユーチューブ・ビデオ」クラス名で、チャットボックスを扱うのdivは、クラスである

「チャット」ここで

<!DOCTYPE html> 
     <html> 
      <head> 
       <title>Chat</title> 
       <link rel="stylesheet" href="main.css"> 
      </head> 

      <body> 

       <div class="header-bar"> 
        <div class="bar"></div> 
        <div class="dropshadow"></div> 
       </div> 

       <div class="DJ-text">Affinity FM DJ Room 
        <span class="Chat-text">Chat</span> 
       <div class="DJ-underline"></div> 
       <div class="Chat-underline"></div></div> 

       <div class="youtube-video" style="float: left;"> 

        <iframe width="900px" height="500px" src="https://www.youtube.com/embed/2GvIq2SpVFM" frameborder="0" allowfullscreen></iframe> 

       </div> 

       <div class="chat" style="float: left; padding: 0px 0px 0px 12px;"> 
        <input type="text" class="chat-name" placeholder="Chat"> 
        <div class="info-rect">Info</div> 
        <div class="chat-messages"></div> 
        <textarea placeholder="Join the conversation..."></textarea> 
        <div class="chat-status">Status: <span>Idle</span></div> 
       </div> 

       <script src="http://127.0.0.1:8080/socket.io/socket.io.js"></script> 

       <script> 
        (function() { 
         var getNode = function(s) { 
          return document.querySelector(s); 
         }, 

         // Get required nodes 
         status = getNode('.chat-status span'), 
         messages = getNode('.chat-messages'), 
         textarea = getNode('.chat textarea'), 
         chatName = getNode('.chat-name'), 

         statusDefault = status.textContent,  

         setStatus = function(s){ 
          status.textContent = s; 

          if(s !== statusDefault){ 
           var delay = setTimeout(function(){ 
            setStatus(statusDefault); 
            clearInterval(delay); 
           }, 3000); 
          } 
         }; 

         //try connection 
         try{ 
          var socket = io.connect('http://127.0.0.1:8080'); 
         } catch(e){ 
          //Set status to warn user 
         } 

         if(socket !== undefined){ 

          //Listen for output 
          socket.on('output', function(data){ 
           if(data.length){ 
            //Loop through results 
            for(var x = 0; x < data.length; x = x + 1){ 
             var message = document.createElement('div'); 
             message.setAttribute('class', 'chat-message'); 
             message.textContent = ': ' + data[x].message; 
             var name=document.createElement('span'); 
             name.setAttribute('class', 'userName'); 
             name.textContent = data[x].name; 

             message.insertBefore(name, message.firstChild); 

             //Append 
             messages.appendChild(message); 
             messages.insertBefore(message, messages.firstChild); 
            } 
           } 
          }); 

          //Listen for a status 
          socket.on('status', function(data){ 
           setStatus((typeof data === 'object') ? data.message : data); 

           if(data.clear === true){ 
            textarea.value = ''; 
           } 
          }); 

          //Listen for keydown 
          textarea.addEventListener('keydown', function(event){ 
           var self = this, 
            name = chatName.value; 

           if(event.which === 13 && event.shiftKey === false){ 
            socket.emit('input', { 
             name: name, 
             message: self.value 
            }); 
           } 
          }); 
         } 

        })(); 
       </script> 
      </body> 
     </html> 
は私のCSSユーチューブ・ビデオ用とチャットで:

body { 
    background-color: #0f0f17; 
    margin: 0px; 
    width: 100%; 
} 

body, 
textarea, 
input { 
    font: 13px "Raleway", sans-serif; 
    color: #ffffff; 

} 

.bar{ 
    height: 115px; 
    width: 100%; 
    background-color: #15151d; 
} 

.DJ-text{ 
    font-weight: 700; 
    position:relative;left:50px; 
    position:relative;top:80px; 
    text-transform: uppercase; 
} 

.Chat-text{ 
    position:relative;left:900px; 
} 

.DJ-underline{ 
    width: 900px; 
    height: 1px; 
    position:relative;top:20px; 
    background-color: #3f3f45; 
} 

.Chat-underline{ 
    width: 400px; 
    position:relative;left:-140px; 
    float:right; 
    height: 1px; 
    position:relative;top:20px; 
    background-color: #3f3f45; 
} 

/*.youtube-video{ 
    position: relative; left: 50px; 
    position: relative; top: 130px; 


} 

.chat { 
    max-width: 400px; 
    background-color: #0f0f17; 
    position:relative;left:1093px; 
    position:relative;top:150px; 
}*/ 

.chat-messages, 
.chat-textarea, 
.chat-name { 
    border: 1px solid #1a1a23; 
    background-color: #1a1a23; 
} 

.userName{ 
    font-weight: 700; 
    color: #079ce0; 
} 

.chat-messages { 
    width:100%; 
    height:400px; 
    overflow-y:scroll; 
    padding:10px; 
} 

.chat-message { 
    margin-bottom:10px; 
} 

.info-rect{ 
    height: 40px; 
    width: 180px; 
    padding:10px; 
    max-width: 100%; 
    margin:0; 
    border:0; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    font-weight: 700; 
    text-transform: uppercase; 
} 

.chat-name{ 
    height: 40px; 
    max-width: 100%; 
    width: 180px; 
    padding:10px; 
    border:0; 
    margin:0; 
    font-weight: 700; 
    text-transform: uppercase; 
    float:left; 
    text-align: center; 
} 

.chat textarea { 
    width:100%; 
    padding:10px; 
    margin:0; 
    border-top:0; 
    max-width:100%; 
    border-top: 1px solid #0f0f17; 
    border-bottom: 1px solid #1a1a23; 
    border-right: 1px solid #1a1a23; 
    border-left: 1px solid #1a1a23; 
    background-color: #1a1a23; 

} 

.chat-status { 
    color: #bbb; 
    background-color: #0f0f17; 
} 

.info-rect, 
.chat textarea, 
.chat-name { 
    max-width: 100%; 
} 

@ georges_user2251342から供給された上記のコードを使用して、このページは次のようになりますここで

は、参照PSDです:http://imgur.com/4XU62C9

+0

ビデオを左に、チャットボックスを右にしたいですか? – Thinker

+0

@Thinkerはい正しい、申し訳ありませんが指定する必要があります –

答えて

2

彼らの言うことは事実です!私が正しく理解していれば、センタリングすることによって、2つの物を横に並べて、隣り合って話すことを意味します。

あなたの場合、「youtube-video」要素と「chat」要素をパーセントで並べて配置する必要があります(yes)。しかし、私は20%で80%ではなく33%で66%を使用します。あなたの「チャット」要素はわずか20%で良く見えないからです。それは勃起しているように見えます。これらに

ルック:

(66%-33%)http://lespointscom.com/a/misc/demo/2016_06_18/main_4.html

(80%-20%)http://lespointscom.com/a/misc/demo/2016_06_18/main_5.html

AGAIN NEW HTML:AGAIN

   <!DOCTYPE html> 
      <html> 
       <head> 
        <title>Chat</title> 
        <link rel="stylesheet" href="main6.css"> 
       </head> 

       <body> 

        <div class="header-bar"> 
         <div class="bar"></div> 
         <div class="dropshadow"></div> 
        </div> 


        <div class="container"> 
         <div class="youtube-video"> 
          <div class="DJ-text">Affinity FM DJ Room</div> 
          <div class="DJ-underline"></div> 
          <iframe class="iframe" src="https://www.youtube.com/embed/2GvIq2SpVFM" frameborder="0" allowfullscreen></iframe> 
         </div> 

         <div class="chat"> 
          <div class="Chat-text">Chat</div> 
          <div class="Chat-underline"></div> 
          <input type="text" class="chat-name" placeholder="Chat"> 
          <div class="info-rect">Info</div> 
          <div class="chat-messages"></div> 
          <textarea placeholder="Join the conversation..."></textarea> 
          <div class="chat-status">Status: <span>Idle</span></div> 
         </div> 
        </div> 

        <script src="http://127.0.0.1:8080/socket.io/socket.io.js"></script> 

        <script> 
         (function() { 
          var getNode = function(s) { 
           return document.querySelector(s); 
          }, 

          // Get required nodes 
          status = getNode('.chat-status span'), 
          messages = getNode('.chat-messages'), 
          textarea = getNode('.chat textarea'), 
          chatName = getNode('.chat-name'), 

          statusDefault = status.textContent,  

          setStatus = function(s){ 
           status.textContent = s; 

           if(s !== statusDefault){ 
            var delay = setTimeout(function(){ 
             setStatus(statusDefault); 
             clearInterval(delay); 
            }, 3000); 
           } 
          }; 

          //try connection 
          try{ 
           var socket = io.connect('http://127.0.0.1:8080'); 
          } catch(e){ 
           //Set status to warn user 
          } 

          if(socket !== undefined){ 

           //Listen for output 
           socket.on('output', function(data){ 
            if(data.length){ 
             //Loop through results 
             for(var x = 0; x < data.length; x = x + 1){ 
              var message = document.createElement('div'); 
              message.setAttribute('class', 'chat-message'); 
              message.textContent = ': ' + data[x].message; 
              var name=document.createElement('span'); 
              name.setAttribute('class', 'userName'); 
              name.textContent = data[x].name; 

              message.insertBefore(name, message.firstChild); 

              //Append 
              messages.appendChild(message); 
              messages.insertBefore(message, messages.firstChild); 
             } 
            } 
           }); 

           //Listen for a status 
           socket.on('status', function(data){ 
            setStatus((typeof data === 'object') ? data.message : data); 

            if(data.clear === true){ 
             textarea.value = ''; 
            } 
           }); 

           //Listen for keydown 
           textarea.addEventListener('keydown', function(event){ 
            var self = this, 
             name = chatName.value; 

            if(event.which === 13 && event.shiftKey === false){ 
             socket.emit('input', { 
              name: name, 
              message: self.value 
             }); 
            } 
           }); 
          } 

         })(); 
        </script> 
       </body> 
      </html> 

新しいCSS:

 .youtube-video{ 
      float: left; 
      width:66%; 
     } 

     .chat { 
      float: left; 
      width:33%; 
     } 

     .iframe { 
      width:98%; 
      min-height:500px; 
     } 

     .container { 
      width:98%; 
     } 

     body { 
      background-color: #0f0f17; 
      margin: 0px; 
      width: 100%; 
     } 

     body, 
     textarea, 
     input { 
      font: 13px "Raleway", sans-serif; 
      color: #ffffff; 

     } 

     .bar{ 
      height: 115px; 
      width: 100%; 
      background-color: #15151d; 
     } 

     .DJ-text{ 
      font-weight: 700; 
      /*position:relative; 
      left:50px; 
      top:80px;*/ 
      text-transform: uppercase; 
     } 

     .Chat-text{ 
      font-weight: 700; 
      /*position:relative;left:900px;*/ 
      text-transform: uppercase; 
     } 

     .DJ-underline{ 
      width: 98%; 
      height: 1px; 
      position:relative;top:20px; 
      background-color: #3f3f45; 
      margin: 0px 0px 50px; 
     } 

     .Chat-underline{ 
      width: 100%; 
      position:relative; 
      /*left:-140px;*/ 
      float:right; 
      height: 1px; 
      position:relative;top:20px; 
      background-color: #3f3f45; 
      margin: 0px 0px 50px; 
     } 
     .chat-messages, 
     .chat-textarea, 
     .chat-name { 
      border: 1px solid #1a1a23; 
      background-color: #1a1a23; 
     } 

     .userName{ 
      font-weight: 700; 
      color: #079ce0; 
     } 

     .chat-messages { 
      width:95%; 
      height:400px; 
      overflow-y:scroll; 
      padding:10px; 
     } 

     .chat-message { 
      margin-bottom:10px; 
     } 

     .info-rect{ 
      height: 40px; 
      width: 180px; 
      padding:10px; 
      max-width: 100%; 
      margin:0; 
      border:0; 
      display: flex; 
      align-items: center; 
      justify-content: center; 
      font-weight: 700; 
      text-transform: uppercase; 
     } 

     .chat-name{ 
      height: 40px; 
      max-width: 100%; 
      width: 180px; 
      padding:10px; 
      border:0; 
      margin:0; 
      font-weight: 700; 
      text-transform: uppercase; 
      float:left; 
      text-align: center; 
     } 

     .chat textarea { 
      width:95%; 
      padding:10px; 
      margin:0; 
      border-top:0; 
      max-width:100%; 
      border-top: 1px solid #0f0f17; 
      border-bottom: 1px solid #1a1a23; 
      border-right: 1px solid #1a1a23; 
      border-left: 1px solid #1a1a23; 
      background-color: #1a1a23; 

     } 

     .chat-status { 
      color: #bbb; 
      background-color: #0f0f17; 
     } 

     .info-rect, 
     .chat textarea, 
     .chat-name { 
      max-width: 100%; 
     } 


     @media only screen and (max-width: 772px) and (min-width: 0px) 
     { 
      .youtube-video{ 
       width:100%; 
      } 
      .chat{ 
       width:100%; 
      } 
     } 




     @media only screen and (max-width: 1254px) and (min-width: 0px) 
     { 
      .info-rect{ 
       width:30%; 
      } 
     } 
     @media only screen and (max-width: 1054px) and (min-width: 0px) 
     { 
      .info-rect{ 
       width:10%; 
      } 
     } 
+0

素晴らしい、これはトリックをした!最後の質問は、画面上にこれを中央に置く最も良い方法は、ピクセルを使ったシフトが悪い考えであると述べているからです。ご協力ありがとうございました。 –

+0

(反応的)http://lespointscom.com/a/misc/demo/2016_06_18/main_6.html レスポンシブにするために苦労しました66%-33%バージョンだけで、あなたはそれをさらに良くすることができます。画面が772ピクセルよりも小さい場合、何もうまく見えません。あなたのブラウザのサイズをすべて3で縮小し、最後のものとの違いを気付かせてください! –

1

あなたはpositionプロパティを使用して、右にチャットボックスをもたらすことができます。

  1. これを行うことによって、あなたは右にチャットボックスをもたらすことができる、だから、chat

    width:20%; 
    height:100%; 
    position:absolute; 
    right:0; 
    top:0; 
    

ために、このCSSを追加youtube-video

width:80%; 
height:100%; 
position:absolute; 
left:0; 
top:0; 
  • ために、このCSSを追加します。ここで

    Plnkr

    はそれがあなたのために働くの希望です:)

  • +0

    ねえ、おかげで、提案!私はあなたのコードをCSSに追加するときに何が起こるかを表示するために投稿を更新しました。チャットボックスは実際にビデオの隣にありますが、ビデオ/チャットは今や不思議に相殺されています(上記画像参照)。これはちょうどピクセル値で微妙に変化しますか? –

    +0

    @JordanLewallenピクセルで左の値を言及しないでください。これをパーセンテージで追加すると、携帯電話やipadで反応するようになります – Thinker

    +0

    これは「トップ」値にも同様に対応しますか?私はこれらの問題を適切に調整しています。 –

    0

    ただ、両方のdiv要素にfloat: left;を置く:

       <!DOCTYPE html> 
          <html> 
           <head> 
            <title>Chat</title> 
            <link rel="stylesheet" href="main.css"> 
           </head> 
    
           <body> 
    
            <div class="header-bar"> 
             <div class="bar"></div> 
             <div class="dropshadow"></div> 
            </div> 
    
            <div class="DJ-text">Affinity FM DJ Room 
             <span class="Chat-text">Chat</span> 
            <div class="DJ-underline"></div> 
            <div class="Chat-underline"></div></div> 
    
            <div class="youtube-video" style="float: left;"> 
    
             <iframe width="900px" height="500px" src="https://www.youtube.com/embed/2GvIq2SpVFM" frameborder="0" allowfullscreen></iframe> 
    
            </div> 
    
            <div class="chat" style="float: left; padding: 0px 0px 0px 12px;"> 
             <input type="text" class="chat-name" placeholder="Chat"> 
             <div class="info-rect">Info</div> 
             <div class="chat-messages"></div> 
             <textarea placeholder="Join the conversation..."></textarea> 
             <div class="chat-status">Status: <span>Idle</span></div> 
            </div> 
    
            <script src="http://127.0.0.1:8080/socket.io/socket.io.js"></script> 
    
            <script> 
             (function() { 
              var getNode = function(s) { 
               return document.querySelector(s); 
              }, 
    
              // Get required nodes 
              status = getNode('.chat-status span'), 
              messages = getNode('.chat-messages'), 
              textarea = getNode('.chat textarea'), 
              chatName = getNode('.chat-name'), 
    
              statusDefault = status.textContent,  
    
              setStatus = function(s){ 
               status.textContent = s; 
    
               if(s !== statusDefault){ 
                var delay = setTimeout(function(){ 
                 setStatus(statusDefault); 
                 clearInterval(delay); 
                }, 3000); 
               } 
              }; 
    
              //try connection 
              try{ 
               var socket = io.connect('http://127.0.0.1:8080'); 
              } catch(e){ 
               //Set status to warn user 
              } 
    
              if(socket !== undefined){ 
    
               //Listen for output 
               socket.on('output', function(data){ 
                if(data.length){ 
                 //Loop through results 
                 for(var x = 0; x < data.length; x = x + 1){ 
                  var message = document.createElement('div'); 
                  message.setAttribute('class', 'chat-message'); 
                  message.textContent = ': ' + data[x].message; 
                  var name=document.createElement('span'); 
                  name.setAttribute('class', 'userName'); 
                  name.textContent = data[x].name; 
    
                  message.insertBefore(name, message.firstChild); 
    
                  //Append 
                  messages.appendChild(message); 
                  messages.insertBefore(message, messages.firstChild); 
                 } 
                } 
               }); 
    
               //Listen for a status 
               socket.on('status', function(data){ 
                setStatus((typeof data === 'object') ? data.message : data); 
    
                if(data.clear === true){ 
                 textarea.value = ''; 
                } 
               }); 
    
               //Listen for keydown 
               textarea.addEventListener('keydown', function(event){ 
                var self = this, 
                 name = chatName.value; 
    
                if(event.which === 13 && event.shiftKey === false){ 
                 socket.emit('input', { 
                  name: name, 
                  message: self.value 
                 }); 
                } 
               }); 
              } 
    
             })(); 
            </script> 
           </body> 
          </html> 
    

    とよりよい一見のため、padding: 0px 0px 0px 12px;または類似の小さなを追加両方のdivを区切るためのパディング

    +0

    に指定すると、チャットボックスが消えてしまいます(何も再配置されません。 –

    +0

    スタイルはカスケードしています!これは非常に重要です。また、画面のサイズも考慮する必要があります。外部のスタイルシートを教えてください。見た目を再現するために使用するスタイルはどれですか? –

    +0

    ご使用のリクエストされたスタイルシートとともに提供されたコード修正を使用してオリジナルの投稿を更新しました。ページの外観をスクリーンショットに追加しました。 (私はHTML/CSSに転送しようとしています!)また、別のユーザは、左/右の値はパーセンテージを使用してプログラムする必要があると述べましたピクセルの? –

    0
    1. youtube-video

      幅のために、このCSSを追加:80%; float:left;

    2. chat

      幅のために、このCSSを追加:20%; float:left;

    +0

    これは実際には機能しませんでした。それはビデオを持ってお互いの隣にチャットが、今次元はすべて偏っている? http://imgur.com/Bwh0Xio –

    +0

    ok ...あなたは正確に何をしたいですか? –

    +0

    は私が現在取り組んでいるpsdです。これは私が撮影しているものです:http://imgur.com/4XU62C9 –

    関連する問題