2013-05-10 16 views
83

2つのリンクを 'view website'と 'view project'を中心にしてdiv内に配置しようとしています。誰かが私がこの仕事をするために必要なことを指摘できますか?div内のスパン要素を水平方向にセンタリングするには

JSフィドル:http://jsfiddle.net/F6R9C/

HTML

<div> 
    <span> 
    <a href="#" target="_blank">Visit website</a> 
    <a href="#">View project</a> 
    </span> 
</div> 

CSS

div { background:red;overflow:hidden } 

span a { 
    background:#222; 
    color:#fff; 
    display:block; 
    float:left; 
    margin:10px 10px 0 0; 
    padding:5px 10px 
} 
+0

関連:http://stackoverflow.com/questions/7886460/center-align-span-text-inside-a-div –

+0

ここではdiv内、垂直方向、水平方向、またはその両方の要素を中心に置く簡単な方法が2つありますCSS):http://stackoverflow.com/a/31977476/3597276 –

答えて

88

1つのオプションは、<a>inline-blockの表示を与え、その後、削除(含むブロックにtext-align: center;を適用することです浮動式):

div { 
    background: red; 
    overflow: hidden; 
    text-align: center; 
} 

span a { 
    background: #222; 
    color: #fff; 
    display: inline-block; 
    /* float:left; remove */ 
    margin: 10px 10px 0 0; 
    padding: 5px 10px 
} 

http://jsfiddle.net/Adrift/cePe3/

+1

これはちょっとハックする必要がある適度に複雑なテーマの私のためのトリックでした。さらにJSFiddleへのリンクは、私がテストできるようにすばらしいものでした。私はこの項目を編集して "overflow:hidden"を "overflow:hidden;"に変更するようにしました。 –

+1

非常にきれいなソリューションのようです。 –

+0

Thx!良い解決策!私は底のものよりも良いと思います。 – HappyCoder888

0

スパンはに対処するためのトリッキーなビットを得ることができます。ティーチスパンの幅を設定した場合、使用することができる

margin: 0 auto; 

それらを中央に配置することができますが、それらは次に異なる行になります。あなたの構造に異なるアプローチを試みることをお勧めします。

ここ

が私の頭の上をオフにしてjsfiddle IカムEまでです:jsFiddle

EDIT:

漂流者の答えが最も簡単な解決策です:)

0

私はあなたがそれらを中央にしたいと仮定しますあなたのフィドルに基づいて2つの別々の行には表示されません。その場合は、次のCSSを試してみてください。

div { background:red; 
     overflow:hidden; 
} 
span { display:block; 
     margin:0 auto; 
     width:200px; 
} 
span a { padding:5px 10px; 
     color:#fff; 
     background:#222; 
} 

は、私はあなたがそれを中央にしたいので、フロートを除去し、その後、追加のマージンを中心とリンクを囲むスパン作っ:彼らに0自動。最後に、スパンに静的な幅を追加しました。これは赤いdiv内の1つの行にリンクを集中させます。中心部:

104

別のオプションは、センタリングされるべき要素に「インラインブロック」を適用すると、テキスト整列を適用margin:0 auto;

span { 
display:table; 
margin:0 auto; 
} 
+2

私のために働いた! – iamanyone

+0

優れている、今私は親にスタイルを適用する必要はありません。 –

+4

同じ問題を解決するためには常に興味深いです。 –

4
<div style="text-align:center"> 
    <span>Short text</span><br /> 
    <span>This is long text</span> 
</div> 
+0

うん、これは動作します。 https://jsfiddle.net/miparnisari/pcb5sdzq/ –

5

介しスパンdisplay:table;中心にそれを与えることであろう親のブロックは私のためのトリックでした。

<span>タグでも機能します。

関連する問題