2016-01-02 65 views
-1

我有一個問題,我的CSS代碼,是不尊重我設置了align:如何在單元中居中文本? (不與文本對齊響應:中心)

#addParameter{ 
    margin: 10px; 
    margin-top: 13px; 
    height: 20px; 
    width: 20px; 

    background-image: url(../img/add.svg); 
    background-repeat: no-repeat; 
    background-size: contain; 

    float: right; 

    text-indent:-9999px; 
    display: block; 
} 

.parameterType{ 
    text-align: center; 
} 

在這個屏幕截圖,你可以看到我的表

https://screencloud.net/v/oA9w

我嘗試使用邊距,填充但沒有任何工作,「parametros」列的文本必須始終居中。

編輯: 這是我的表中的HTML代碼

<table class="Table"> 
     <tr> 
      <td order="name" style="height: 50px;">Nombre</td> 
      <td order="area_id" >Área</td> 
      <td order="cost">Costo</td> 
      <td order="parameters">Parametros</td> 
     </tr> 

     <tr id="{{user.user_id}}"> 
      <td style="overflow:scroll">Mauricio Andrés González Gordillo</td> 
      <td style="overflow:scroll">Sanguíneo</td> 
      <td style="overflow:scroll">$300.00</td> 
      <td style="overflow:scroll"> 
       <a href="#" class="parameterType js-open-modal" data-modal-id="edit_parameter">aaa</a> 
       <a href="#" id="addParameter" class="js-open-modal" data-modal-id="add_parameter"></a> 
      </td> 
     </tr> 

    </table> 

感謝

+0

您需要發佈HTML也是如此 – user2182349

+0

發佈你的HTML,我們不能只是「猜測」你在做什麼。無論如何,你是否嘗試過'line-height'屬性? –

+0

圖標存在問題。它佔據了牢房的空間,並影響到你的身高。在發佈您的HTML之前,我們無法爲您修復此圖標。試圖修復文本不是你想要的。這是需要修復的圖標 – LOTUSMS

回答

0

你的問題不在於內容不會在小區的中間居中,問題是利潤率加入到旁邊的文本浮動框,它會導致框從其中心移動。上面的垂直對齊的答案工作正常,你可能也考慮到相對的位置添加到該小區,並給出一個絕對定位框,如圖所示的例子

.Table { 
 
    width: 300px; 
 
    border: 1px solid #000000; 
 

 
} 
 

 
    td { 
 
    padding: 0; 
 
    border: 1px solid #000000; 
 
    position: relative; 
 
    } 
 

 
.parameterType { 
 
    display: inline-block; 
 
    padding-right: 25px; 
 
} 
 

 

 
#addParameter{ 
 
    /* 
 
    margin: 10px; 
 
    margin-top: 13px; 
 
    */ 
 
    
 
    height: 20px; 
 
    width: 20px; 
 
    
 
    background-color: #ff0000; 
 
    background-image: url(../img/add.svg); 
 
    background-repeat: no-repeat; 
 
    background-size: contain; 
 
    
 
    /* 
 
    float: right; 
 
    */ 
 
    
 
    text-indent:-9999px; 
 
    display: block; 
 
    
 
    /*add this*/ 
 
    position: absolute; 
 
    right: 5px; 
 
    top: 50%; 
 
    margin-top: -10px; /*half of the box height*/ 
 
} 
 

 
.parameterType{ 
 
    text-align: center; 
 
}
<table class="Table"> 
 
     <tr> 
 
      <td order="name" style="height: 50px;">Nombre</td> 
 
      <td order="area_id" >Área</td> 
 
      <td order="cost">Costo</td> 
 
      <td order="parameters">Parametros</td> 
 
     </tr> 
 

 
     <tr id="{{user.user_id}}"> 
 
      <td style="overflow:scroll">Mauricio Andrés González Gordillo</td> 
 
      <td style="overflow:scroll">Sanguíneo</td> 
 
      <td style="overflow:scroll">$300.00</td> 
 
      <td style="overflow:scroll"> 
 
       <a href="#" class="parameterType js-open-modal" data-modal-id="edit_parameter">text text text text</a> 
 
       <a href="#" id="addParameter" class="js-open-modal" data-modal-id="add_parameter"></a> 
 
      </td> 
 
     </tr> 
 

 
    </table>

+0

感謝:D 這工作像魔術一樣,也修復了我的表有一些其他問題。 –

+0

丹娜達·毛裏西奧,我alegra saberlo,un saludo – wolfitoXtreme

0

如果我理解這一點正確,您想在表中的文本是水平和垂直居中。就像表格的行爲一樣嗎?

你可以通過你的表內分配

display:table; 

div<div class="table-container">

display:table-cell; 

任何div小號模擬與CSS這種行爲。

Here的還就如何中心的所有東西W3C一個很好的文章,你可以想中心

希望幫助!

+0

這是一個相當不錯的猜測,但仍然是一個猜測。他在那個牢房裏有一個佔據空間的圖標。他的文本實際上集中在圖標占據一些之後留下的空間中。這個圖標是這裏的罪魁禍首。在他發佈HTML之前,這並不是真正的答案。但這是一個非常好的猜測 – LOTUSMS

0

vertical-align:middle; 
 

 
/* or */ 
 

 
line-height:(height of your table);

+0

他在那個單元格中有一個圖標,在其他單元格中不存在。在他發佈HTML之前,這個答案只是一個猜測,而不是一個答案 – LOTUSMS

+1

此外,vertical-align只適用於不在塊元素上的內聯元素。如果只有一行文本,則行高思路纔有效。 – Alex

0

好吧,你有一些東西在CSS來解決:

#addParameter { 
    float: right; 
    position: relative; 
    right: 0; 
    top: -15px; 
} 

.parameterType { 
    text-align: center; 
    display:inline-block; 
    width:100%; 
    padding-top:15px; 
} 

並移動圖標HTML而不是在CSS有它的和背景圖像。這使你比起任何事物都更糟糕。在我的演示中,我使用的是字體真棒代替SVG圖像,但如果字體真棒不是您的一杯茶,只需替換<i class="fa fa-plus-square-o"></i><img src="../img/add.svg"/>即可。你應該有相同的結果。

由於它看起來像你正在用AngularJS以編程方式做這個圖標,把它放在你的控制器或指令,你會有同樣的效果。

這裏是DEMO