前提・実現したいこと
background-clip: textを使用しているためか、文字を選択しているときに、::selection で指定した背景色と文字色が同じになってしまう。それを解決したい。
該当のソースコード
HTML
1<div class="tt"> 2 <div> 3 <p>xxx</p> 4 <p>xxx</p> 5 </div> 6</div>
css
1::selection { 2 background: red; 3 color: #fff; 4 } 5 ::-moz-selection { 6 background: red; 7 color: #fff; 8 } 9.tt div { 10 text-align: center; 11 display: inline-block; 12 background-clip: border-box; 13 background: linear-gradient(to bottom, #364954 0%, #364954 20%, #89394B 50%, #4E6675 80%, #4E6675 100%); 14 background: -webkit-linear-gradient(to bottom, #364954 0%, #364954 20%, #89394B 50%, #4E6675 80%, #4E6675 100%); 15 background-clip: text; 16 -webkit-background-clip: text; 17 -webkit-text-fill-color: transparent; 18 }
試したこと
js
1var tp = $('.tt p'); 2 tp.each(function () { 3 $(this).on('mouseup', function(e){ //mouseupでイベント発火 4 var selectedStr; 5 if(window.getSelection){ //selectionオブジェクト取得 6 selectedStr = window.getSelection().toString(); //文章取得 7 if(selectedStr !== '' && selectedStr !== '\n'){ //文章チェック 8 console.log(selectedStr); 9 $(this).parent('div').addClass('t'); 10 } else { 11 $(this).parent('div').removeClass('t'); 12 } 13 } 14 }); 15 });
css
1.tt .t { 2 background-clip: inherit; 3 background: none; 4 -webkit-background-clip: none; 5 -webkit-text-fill-color: #fff; 6 }
思っていたのと違ったので断念しました。
補足情報(FW/ツールのバージョンなど)
Fire fox 最新、Safari 604.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/12 05:07
2021/06/12 05:43