【问题标题】:Safari rendering different border width bugSafari 渲染不同边框宽度的 bug
【发布时间】:2018-10-05 00:51:46
【问题描述】:

好的,问题来了:我想创建一个选择+按钮元素,除了一件事之外,一切都很顺利。

由于某种原因,“select”的边框和“a”标签的边框以不同的方式呈现。虽然它是一个很小的细节,如果你不放大你可能不会注意到,它让我很恼火。

在 Chrome 和 Firefox 中没有这样的问题,但在 Safari 中是可见的。我的猜测是我可能忘记为 Safari 覆盖一些根深蒂固的“选择”样式,但我的实验没有成功。

很高兴得到您的帮助!

Fiddle Example Photo

HTML:

<li class="category-product-buttons">
  <select style="color: rgb(38, 38, 38);">
    <option value="1">a</option>
    <option value="2">b</option>
    <option value="3">c</option>
  </select>
  <a class="button-anim" type="button" href="">Buy</a>
</li>

CSS 在小提琴中

【问题讨论】:

    标签: html css safari


    【解决方案1】:

    创建在所有浏览器上看起来都相同的下拉列表的最佳选择实际上是不使用 .如果您可以更改html并将js添加到您的项目中,则可以使用ul或div来实现

    $(document).ready(function(){
      $('.custom-select__field').on('click', function(){
        $('.custom-select__list').toggle();
      });
      
      $('.custom-select__list li').on('click', function(){
        $('.select-value').val($(this).data('value'));
        $('.custom-select__list').toggle();
      });
    });
    /* reseting ul styles */
    
    ul {
      list-style-type: none;
      padding: 0;
      margin: 0;
    }
    
    
    /* styling dropdown */
    
    .custom-select {
      width: 200px;
      height: 40px;
      line-height: 40px;
      border: 2px solid red;
    }
    
    .custom-select__field {
      padding: 0 10px;
      background: rgba(255, 0, 0, .2);
      cursor: pointer;
    }
    
    .custom-select__list {
      display:none;
    }
    
    .custom-select__list li {
      padding: 0 10px;
      background:rgba(125,125,0,.2);
      cursor:pointer;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    Only showing this field as text for demonstration, you can hide it with type="hidden"<br>
    <br>
    <input class="select-value" name="select-value" type="text">
    <br>
    You can change the style and everything as you need it.<br><br>
    
    <div class="custom-select">
      <div class="custom-select__field">Select one</div>
      <ul class="custom-select__list">
        <li data-value="1">1</li>
        <li data-value="2">2</li>
        <li data-value="3">3</li>
        <li data-value="4">4</li>
      </ul>
    </div>

    如果您对此概念有任何疑问,请询问

    【讨论】:

    • 谢谢你,@Dirk。虽然在这种情况下它实际上并没有帮助我,但我完全同意你的看法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2017-02-21
    相关资源
    最近更新 更多