2016-06-18 5 views
1

Хотя я понимаю, что совмещение двух div бок о бок - это общий вопрос, у меня есть немного проблема, связанная с тем, чтобы видео и чат YouTube совпадали друг с другом , Я должен использовать диапазон, так как это позволит чат-боксу в том же пространстве, что и видео youtube? Я все еще изучаю веревки здесь в HTML. Вот что в настоящее время выглядит страница как:Div бок о бок с видео YouTube

Вот мой текущий HTML код, то дивы дело с видео YouTube это имя класса «YouTube-видео» и ДИВ дело с окном чата является класс «чат»

<!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 для YouTube-видео и чат:

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, это то, что страница выглядит следующим образом:

Progress

Вот ссылка PSD: http://imgur.com/4XU62C9

+0

Итак, вы хотите, чтобы видео в левом и окне чата было правильно? – Thinker

+0

@Thinker да, правильно, извините, должен был указать, что –

ответ

2

Это правда, что они говорят! Если я правильно понимаю, центрируя, вы хотите поставить 2 вещи бок о бок, рядом друг с другом, так сказать.

В вашем случае элемент «youtube-video» и элемент «chat» необходимо поставить рядом с процентами, да.Тем не менее, я бы использовал 66% с 33% для процентов вместо 80% с 20%. Потому что ваш элемент «chat» выглядит не очень хорошо всего лишь на 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

СНОВА НОВЫЙ HTML:

   <!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> 

опять NEW 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%, так что вы можете сделать это еще лучше. Потому что, если экран меньше 772px, ничего не выглядит хорошо. Попробуйте уменьшить размер вашего браузера со всеми 3 и обратите внимание на разницу с последним! –

1

Вы можете принести окно чата вправо с помощью position собственности.

  1. Добавить CSS для youtube-video

    width:80%; 
    height:100%; 
    position:absolute; 
    left:0; 
    top:0; 
    
  2. Добавить CSS для chat

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

Итак, делая это, вы можете принести окно чата направо.

Вот Plnkr

Надеется, что это работает для вас :)

+0

Эй, спасибо за предложение! Я обновляю сообщение, чтобы показать, что произойдет, когда я добавлю код в css. Чат-чат действительно рядом с видео, но видео/чат теперь странно смещены (см. Изображение выше). Разве это сейчас вопрос возиться с значениями пикселей? –

+0

@JordanLewallen Не указывайте левое значение с помощью пикселя. Добавьте его в процентах, чтобы он был отзывчивым в мобильных телефонах и ipad – Thinker

+0

делает ли это также «верхнее» значение? У меня возникли проблемы с их правильной настройкой. –

0

Просто поместите 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; или подобные маленькому padding для разделения обоих div.

+0

, используя вашу технику, заставляет окно чата исчезать (ничто другое не перегружено, его больше нет на странице :( –

+0

Стили являются каскадными! Это очень важно понять. Кроме того, мы должны учитывать размер вашего экрана. Можете ли вы дать нам свои внешние таблицы стилей? Все стили, которые вы используете, чтобы воспроизводить то, что вы видите? скажите нам, какой браузер вы используете, и это полный экран? –

+0

Я обновил свое исходное сообщение, используя исправления кода, которые вы предоставили вместе с запрошенной таблицей стилей. Я добавил скриншот того, как выглядит страница, наряду с (который я пытаюсь передать в HTML/CSS!). Также другой пользователь отметил, что значения left/right должны быть запрограммированы с использованием процентов пикселей? –

0
  1. Добавьте этот CSS для youtube-video

    ширина: 80%; float: слева;

  2. Добавьте этот CSS для chat

    ширина: 20%; float: слева;

+0

это действительно не сработало. Он получил видео и чат рядом друг с другом, но размеры теперь перекошены? http://imgur.com/Bwh0Xio –

+0

ok ... так что вы точно хотите ??? –

+0

вот psd, с которым я сейчас работаю. Это то, что я снимаю для: http://imgur.com/4XU62C9 –

Смежные вопросы