2016-01-02 63 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