2016-07-27 9 views
0

私は、ユーザーがウェブページに表示できる最小のフォントサイズを設定できるようにする簡単なクロム拡張を作成しようとしています。CSSのバリエーションフォントサイズでテキストを縦と横に配置する方法

拡張子はウェブページを見て、ユーザーが指定した最小フォントサイズよりも小さいフォントセットがあればそれに応じてフォントサイズが大きくなります。

私の問題は、拡張UI(ポップアップ)を使用している間に発生します。 文字の「abc」を縦横にボックスの中央に配置したいのですが、フォントサイズを大きくするボタンを押すたびに文字「abc」が中央からずれるようになります。指定された垂直方向の配置は中央に設定されます。

アイデア?感謝:)

var FS = 20; 
 
var abc = document.getElementById("tester"); 
 

 
var SmlBtn = document.getElementById("SizeMns"); 
 
var BigBtn = document.getElementById("SizePls"); 
 

 
if(SmlBtn != null){ 
 
    SmlBtn.addEventListener('click', function() { 
 
     FS = FS - 1; 
 
\t \t console.log(FS); 
 
\t \t abc.style.fontSize = FS; 
 
\t \t chrome.storage.sync.set({'fontSize': FS}, function() { 
 
\t \t // Notify that we saved. 
 
\t \t console.log('your font size has been saved to ' + FS.toString()); 
 
\t \t }); 
 
    }); 
 
} 
 

 
if(BigBtn != null){ 
 
\t BigBtn.addEventListener('click', function() { 
 
\t \t FS = FS + 1; 
 
\t \t console.log(FS); 
 
\t \t abc.style.fontSize = FS; 
 
\t \t chrome.storage.sync.set({'fontSize': FS}, function() { 
 
\t \t // Notify that we saved. 
 
\t \t console.log('your font size has been saved to ' + FS.toString()); 
 
\t \t }); 
 
\t }); 
 
}
html { 
 
    text-align: center; 
 
    width: 290px; 
 
\t height: 590px; 
 
} 
 

 
body { 
 
    position: relative; 
 
    overflow-x: hidden; 
 
    overflow-y: auto; 
 
    display: inline-block; 
 
    min-height: 200px; 
 
    max-height: 590px; 
 
    min-width: 285px; 
 
    max-width: 290px; 
 
    margin: 0; 
 
    -webkit-border-radius: 5px; 
 
    -moz-border-radius: 5px; 
 
    border-radius: 5px; 
 
    -moz-background-clip: padding; 
 
    -webkit-background-clip: padding-box; 
 
    background-clip: padding-box; 
 
    font-family: 'Segoe UI', 'PT Sans', 'Helvetica Neue', 'FreeSans', sans-serif; 
 
    font-size: 20px; 
 
    font-weight: 400; 
 
    color: #43435e; 
 
    text-align: center; 
 
    background: #ffffff; 
 
    cursor: default; 
 
    -moz-user-select: none; 
 
    -webkit-user-select: none; 
 
    -ms-user-select: none; 
 
    user-select: none; 
 
} 
 

 
.header { 
 
\t display: block; 
 
\t background-color:#00b7f1; 
 
\t color: #; 
 
\t padding:; 
 
\t height:50px; 
 
\t line-height: 46px; 
 
\t font-size:25; 
 
\t font-weight:600 
 
} 
 

 
.content { 
 
\t position: fixed; 
 
    bottom: 0; 
 
    width: 290px; 
 
\t height: 46px; 
 
\t line-height: 40px; 
 
\t padding: 0px; 
 
\t background-color: rgba(0,0,80,0.6); 
 
} 
 

 
#tester { 
 
\t vertical-align: middle; 
 
\t text-align: center; 
 
\t display: table-cell; 
 
\t vertical-align: middle; 
 
\t padding:; 
 
}
<html> 
 

 
\t <head> 
 
\t \t <link rel="stylesheet" type="text/css" href="popup.css"> 
 
\t </head> 
 

 
\t <body> 
 
\t \t <div class="header">Increase Font Size</div> 
 
\t \t \t \t <p id="tester" font-size="FS">abc</p> 
 
\t \t \t <div class="content"> 
 
\t \t \t \t <button type="button" id="SizeMns">-</button> 
 
\t \t \t \t <button type="button" id="SizePls">+</button> 
 
\t \t \t </div> 
 
\t \t <script src="popup.js"></script> 
 
\t </body> 
 
</html>

+0

私はあなたが押したボタンに応じて、文字「abc」のフォントサイズを+または - 1ずつ変更するJavaスクリプトをいくつか持っています。 これらのボタンの背後にあるJavaスクリプトは、このエディタでは機能しませんでした。スクリプトは完全に拡張機能で動作します) 返信いただきありがとうございます! – Jake

+0

私はちょうどあなたのために、Javascriptを投稿しました: – Jake

答えて

0

を試すことができますあなたがSTHを試して、それが垂直方向と水平方向整列フォントを維持します。

http://codepen.io/kmlzjc/pen/bZKrpx

は、基本的には垂直方向に「ABC」のラベルを整列するために、あなたはこのラベルが整列される高さに参照ボックスを必要としています。私のコード例では:before属性を使用して作成しますが、「abc」テキストの前に#testerのようなものを入れて、それと同じ方法でスタイルすることができます:前にスタイルがあり、同じことを達成します。

.tester:before { 
    content: ' '; 
    display: inline-block; 
    width: 0; 
    height : 100%; 
    vertical-align: middle; 
} 

ボックスの親の高さは#testerです。私は#teterの位置を絶対にして.wrapperの完全な高さを持っているので、ラッパーの高さを設定するだけでウィジェットの高さを変えることができます。 'abc'は常に.wrapperと.testerの中間にあります。

しかし、フォントのサイズを変更すると、abcは縦と横の中央に配置されます。これは達成したいと思っています。

私の例では、.testerクラスのフォントサイズを変更すると、自動的に 'abc'が表示されます。

+0

返信ありがとう! しかしこれはほとんどの場合、変数 'FS'は 'abc'の表示フォントサイズに影響しません。 Javascriptを今すぐ追加しました。どのように動作するのかわかりました。 – Jake

+0

jsが動作するように[link](http://codepen.io/kmlzjc/pen/bZKrpx)を更新しました。また、** FS **変数の初期化を追加して初期のフォントサイズを** .tester **クラスから取り、CSSで設定できるようにしました。しかし、基本的にjsコードを動作させるには、 'abc.style 'を設定する必要があります。fontSize = FS + 'px'; '最後に 'px'を追加すると、スタイルが正しく解釈されます。 –

+0

これは素晴らしい作品です! ありがとうございました。 – Jake

0

私はすぐにcodePenで実装のように、あなたがこの

<body align="center"> 
    <p id="tester" font-size="FS">abc</p> 
</body> 
関連する問題