Contenteditable divを使用するwebappがあります。 Chromeでの表示が気に入っています。フォーカスすると、Chromeがdivの周りに素敵な青い光を表示します。ただし、Firefoxでは、dashedい破線のアウトラインが表示されます。これまで私が観察したことは、div:focusのアウトラインを変更すると、Chromeがデフォルトの青いフレームの表示を停止することです。私のアプリを一貫して素敵に見せたいので、私の質問は
div[contenteditable="true"]:focus
のChromeのデフォルトスタイルをどのように複製できますか?
質問に答えるために、Webkitブラウザーは_outline: 5px auto -webkit-focus-ring-color;
_を使用します。 Macでは_-webkit-focus-ring-color
_は青いrgb(94, 158, 214)
(または_#5E9ED6
_)ですが、WindowsおよびLinuxではゴールドrgb(229, 151, 0)
(または_#E59700
_)(- ref )。
一貫性を求めていることは理解していますが、ユーザーは通常1つのブラウザのみを使用し、ブラウザのデフォルトスタイルに慣れています。 _:focus
_のすべてのインスタンスを変更する予定がない限り、たとえばキーボードユーザー。賛否両論
outline
スタイルを定義し、_:focus
_でデフォルトのユーザーエージェントスタイルに「戻す」場合、これは役立ちます
_.myClass:focus {
outline: 1px dotted #212121;
outline: 5px auto -webkit-focus-ring-color;
}
_
_-webkit
_- prefix色はFF、IEを意味し、Edgeは2番目のルールを無視して最初のルールを使用します。Chrome、SafariおよびOperaは2番目のルール。
HTH!
この fiddle は良い近似値を提供します。
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;
}
私は完璧なものを見つけたと思う、少なくとも私にとっては:
// 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>