What is the default style of the blue focus outline in Chrome?

后端 未结 3 1752
终归单人心
终归单人心 2021-02-03 19:16

I have a webapp that uses contenteditable div\'s. I like how they appear in Chrome: when I focus, Chrome displays a nice blue glow around the div. However in Firefox I get an ug

相关标签:
3条回答
  • 2021-02-03 19:30

    I think I've found the perfect one, At least for me:

    // Beggin
    button {
      outline: 5px auto rgba(0, 150, 255, 1);
      -webkit-outline: 5px auto rgba(0, 150, 255, 1);
      -moz-outline: 5px auto rgba(0, 150, 255, 1);
      -ms-outline: 5px auto rgba(0, 150, 255, 1);
      -o-outline: 5px auto rgba(0, 150, 255, 1);
      /* Use a border to apply the outline */
      border: 1px solid rgba(0, 0, 0, 0);
      
      /* Unimortant styling: */
      background: linear-gradient(to bottom, #fff 30%, #fcfcfc 40%, #f8f8f8 50%, #f0f0f0 100%);
    }
    <button type="button"">Outline</button>

    0 讨论(0)
  • 2021-02-03 19:43

    This fiddle gives a good approximation, you may want to tweak to get closer to what you're specifically after though.

    HTML

    <div contenteditable='true'>Edit Me</div>
    

    CSS

    div[contenteditable=true] {
        width:200px;
        border:2px solid #dadada;
        border-radius:7px;
        font-size:20px;
        padding:5px;
        margin:10px;    
    }
    
    div[contenteditable=true]:focus { 
        outline:none;
        border-color:#9ecaed;
        box-shadow:0 0 10px #9ecaed;
    }
    
    0 讨论(0)
  • 2021-02-03 19:51

    To answer the question, Webkit browsers use outline: 5px auto -webkit-focus-ring-color;. On Macs -webkit-focus-ring-color is blue rgb(94, 158, 214) (or #5E9ED6), but on Windows and Linux it’s gold rgb(229, 151, 0) (or #E59700) (ref).

    While I understand your desire for consistency, users generally only use one browser, and are used to their browser’s default styles. Note that unless you plan to change every instance of :focus you’ll end up with inconsistency for e.g. keyboard users. Pros and cons eh!

    If you define outline styles and want to ‘revert’ back to the default User Agent styles on :focus, this will help

    .myClass:focus {
      outline: 1px dotted #212121;
      outline: 5px auto -webkit-focus-ring-color;
    }

    The -webkit-prefix color means FF, IE and Edge will ignore the second rule and use the first. Chrome, Safari and Opera will use the second rule.

    HTH!

    0 讨论(0)
提交回复
热议问题