Jump to content
  • 0

IE padding в input не учитываеться


Viper
 Share

Question

Думаю большинству знакомый баг в IE, когда при наборе длинного текста в input горизонтальный paddng не учитываться. И если в этом padding'е расположено фоновое изображение, то текст налазит на него.

Обычно это решается дополнительным враппером/контейнером. Но как же не хочется для каждого такого поля добавляться дополнительный контейнер только, что бы исправить этот баг в IE.

Существует ли решение этой задачи, без использования дополнительных тегов или js?

Edited by Viper
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Думаю большинству знакомый баг в IE, когда при наборе длинного текста в input горизонтальный paddng не учитываться. И если в этом padding'е расположено фоновое изображение, то текст налазит на него.

Обычно это решается дополнительным враппером/контейнером. Но как же не хочется для каждого такого поля добавляться дополнительный контейнер только, что бы исправить этот баг в IE.

Существует ли решение этой задачи, без использования дополнительных тегов или js?

дайте-ка подумать - IE6-7 устарели на фоне IE10

Link to comment
Share on other sites

  • 0
дайте-ка подумать - IE6-7 устарели на фоне IE10

Этот баг актуален для всех версий IE

Может поможет overflow:visible

Это решение для другого бага.

Нужно вводить текст длиннее самого input'а, в этом случае горизонтальный padding перестает учитываться и текст "сьезджает" к бордеру - http://jsfiddle.net/4nJDr/

Edited by Viper
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By Kasl68
      Не могу значение с одного поле на другой, через  JavaScript. Помогите пожалуйста!
      <!DOCTYPE HTML> <html lang="kz"> <head>     <meta charset="utf-8"> <title> ВЫВОД </title> </head> <body>    <input type="text" name="Vvod" value="Пример" placeholder="введите имя"> <input type="text" name="Vyvod"> <br> <input type="submit"></button> <br> <script type="text/javascript">     function submit() {     let Vvod=document.getElementsByTagName('Vvod');     Vyvod.value=Vvod;     console.log(Vyvod.value);     } </script>   </body> </html>  
    • By maxfloyd
      Здравствуйте. padding подгоняется не четко, при изменении масштаба видно изъяны (подсветка кнопки не на всю высоту или на оборот больше чем нужно)

      Код: https://jsfiddle.net/aemjkhp9/
    • By Launder
      Решил поэкспериментировать с динамическим изменением индикации, вот по этому заданию. Как мне казалось, это реально: стили для любого значения параметра загружаются сразу, изменяется параметр - сразу применяются стили, соответствующие новому параметру. Но почему-то эта "динамика" работает, только для параметра, заданного по-умолчанию. Почему стили не применяются к изменённому параметру? Какова тут логика работы и возможно ли подобное, сделать на чистом CSS? Спасибо.
      PS: ну и до кучи - буду рад инфе, как стилизовать input type='number '?
       
    • By Launder
      Вот кот. Предполагается, что элемент не выводится из потока (по крайней мере, нужно чтоб он взаимодействовал в "строке" с другими элементами, предполагается, что за block-center могут также находится элементы). Загвоздка следующая: левый блок (block-1) имеет минимальный размер в пикселях(150px) и натуральный размер в rem (15rem, при том, что 1rem = 10px). Хочется оставить пользователю возможность менять в браузере размер шрифта, при этом положение левого края второго элемента (block-center) должно оставаться посередине (или в ином заданном месте).
      Для второго элемента указано свойство:
      padding-left: calc(50% - 15rem); /* тут может быть и 150px*/ При использовании rem во-второй части выражения, элемент уходит вправо, при маленьком шрифте (отнимается меньше - отступ больше),
      если в выражении использовать пиксели, то элемент уйдёт вправо при большом шрифте (просто левый элемент увеличится).
      И в том, и в другом случае, для компенсации сдвига вправо, нужно сдвинуть элемент ВЛЕВО. Но сдвинуть не абсолютно, а при условии. Основные инструменты для сдвигов: марджины паддиги и бордеры прилежащих сторон элементов block-1 и block-center... Можно было бы как-то изловчится с паддингами (что-то вроде 15rem - 150px, положительное значение будет только при значении браузерного шрифта большего, чем по-умолчанию, значит только тогда он и начнёт работать), но паддинг может сдвинуть только вправо. Марджин может сдвинуть и туда и туда, но он безусловен, то есть, не может в одном случае сдвигать, а в другом - не сдвигать.
      Была идея как-то сделать, чтоб паддинг и марджин взаимно компенсировали друг друга, когда нам надо, а когда не нужно паддинг, стал меньше нуля, и исчез, но на практике мне не удалось это реализовать.
      В случае, когда отнимаем rem (в указанном выше коде), при нулевом font-size отступ максимален. Соответственно, сдвиг влево должен быть максимален и равняться ширине элемента block-1 в пикселях. Допустим ставим элементу block-center отрицательный левый марджин (или отрицательный правый марджин ставим block-1), сдвигая block-center на нужную величину, а, чтоб при увеличении шрифта отступ уменьшался, пишем block-1 {margin-right: calc(15rem - 150px)}, что при маленьких шрифтах будет сдвигать блок block-center влево, но при больших будет сдвигать вправо и как это компенсировать - не понятно.
      В случае, когда отнимаем px, при маленьких шрифтах всё хорошо, поскольку и block-1, и отступ - нужных размеров, но когда шрифт увеличивается, элемент block-1 увеличивается, а расстояние между блоками block-1 и block-center остаётся таким же, и опять-таки нужно каким-то образом компенсировать, а любой марджин - будет действовать в обе стороны, а паддинг - в одну, но только вправо, а мне нужно налево.
      В общем, не оставляют меня мысли, что тут можно применить какую-то хитрость и скомпенсировать увеличение отступа, при изменении шрифта, но что-то, как не изгаляюсь, паддинг сдвигает не туда, марджин сдвигает не только туда, но и не туда, при этом паддинг это "не туда" скомпенсировать не может, поскольку сам вылезает туда же, в "не туда"...
      Каким образом приручить эти элементы?
       
    • By Masya
      Здравствуйте,  я новичок в сайтостроении и у меня возникла одна проблема при адаптации страницы, она состоит в том ,что в max-width ,при заданной ширине, не хочет работать изменение отступов (padding и margin), хотя flex-direction: column; работает. Жуткое ощущение глупой ошибки ,которую не могу найти. Заранее спасибо за помощь.
      Ниже HTML и CSS код:
      <header>
                  <div class="header">
                      <div class="wrap">
                          <div class="logo header_left">
                              <a href="#">
                                  <img src="images/logo.png" alt="Логотип">
                              </a>
                          </div>
                          <div class="header_right">
                              <div id="topmenu">
                                  <p>
                                      <a href="#">About</a>
                                      <span>/</span>
                                      <a href="#">Blog</a>
                                      <span>/</span>
                                      <a href="#">Contact</a>
                                      <span>/</span>
                                  </p>
                              </div>
                              <div id="social">
                                  <a class="twitter" href="#"></a>
                                  <a class="vimeo" href="#"></a>
                                  <a class="facebook" href="#"></a>
                                  <a class="instagram" href="#"></a>
                                  <a class="dribbble" href="#"></a>
                                  <a class="reddit" href="#"></a>
                              </div>
                          </div>
                      </div>
                  </div>
              </header>
      ——————————————————————————————————————————————————--
      #container {
          margin: 0 auto;
      }
      #container .header {
          border-bottom: 1px solid #bfbfbf;
          box-shadow: 0 0 3px #dbdbdb;
          padding-top: 6px;
      }
      #container .header .wrap {
          display: flex;
          justify-content: space-between;
          padding: 0;
      }
      @media (max-width: 650px) {
          .header .wrap {
              flex-direction: column;
              padding: 0 3px;
              margin-bottom: 5px;
          }
          
          .header #socials {
              margin-left: 5px;
          }
          
          .header #socials a:last-child {
              margin-right: 2px;;
          }
      }
      #container .header .header_left {
          align-self: center;
      }
      #container .header .header_right {
          display: flex;
          justify-content: space-between;
      }
      #container #topmenu {
          color: #8e8e8e;
          padding-top: 6px;
      }
      #container #topmenu a {
          color: #8e8e8e;
          text-decoration: none;
      }
      #container #topmenu a:hover {
          color: #dd5555;
      }
      #container #social {
          display: flex;
          margin-left: 20px;
          margin-right: 50px; 
      }
      #social a {
          margin-top: 9px;
          margin: 8px  10px;
          
      }
      .twitter {
          background: url("../images/twitter_un.png") no-repeat;
          height: 11px;
          width: 13px;
          cursor: pointer;
      }
      .twitter:hover {
          background: url("../images/twitter.png") no-repeat;
          height: 11px;
          width: 13px;

      .dribbble {
          background: url("../images/dribbble_un.png") no-repeat;
          height: 13px;
          width: 13px;
          cursor: pointer;

      .dribbble:hover {
          background: url("../images/dribbble.png") no-repeat;
          height: 13px;
          width: 13px;

      .vimeo {
          background: url("../images/vimeo_un.png") no-repeat;
          height: 12px;
          width: 13px;
          cursor: pointer;

      .vimeo:hover {
          background: url("../images/vimeo.png") no-repeat;
          height: 12px;
          width: 13px;

      .facebook {
          background: url("../images/facebook_un.png") no-repeat;
          height: 13px;
          width: 7px;
          cursor: pointer;

      .facebook:hover {
          background: url("../images/facebook.png") no-repeat;
          height: 13px;
          width: 7px;

      .instagram {
          background: url("../images/instagram_un.png") no-repeat;
          height: 12px;
          width: 12px;
          cursor: pointer;

      .instagram:hover {
          background: url("../images/instagram.png") no-repeat;
          height: 12px;
          width: 12px;

      .reddit {
          background: url("../images/reddit_un.png") no-repeat;
          height: 11px;
          width: 13px;
          cursor: pointer;

      .reddit:hover {
          background: url("../images/reddit.png") no-repeat;
          height: 11px;
          width: 13px;

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy