css - javascript 中的文本对齐问题

标签 css

我想按以下格式构建图例:带最小值、分隔、最大值

例如-

10-20

20-30

30-40

问题是:

1.我没有成功对齐文本。我希望最小值位于正确的位置 separated 将在中心,最大值将在左侧。

2。 例如,我需要数字对齐

    0 - 20
10000 - 3000
20000 - 40000
30000 - 500000


var legendWrapper = $('<div />');
legendWrapper.addClass('legendWrapper')
parentElement.appendChild(legendWrapper.get(0));
legend.addClass('legend')

for (var index = 0; index < self.legendData.getSubElementLength(); index++) {

    var legendItem = $('<div />');
    legendItem.addClass('legendItem')
    if (index == self.legendData.getSubElementLength() - 1) legendItem.addClass('lastLegendItem');

    var color = $('<span />');
    color.addClass('legendColor')
    legendItem.get(0).appendChild(color.get(0));

    var minValue = $('<span />');
    minValue.addClass('minValue')
    legendItem.get(0).appendChild(minValue.get(0));

    var separated = $('<span />');
    separated.addClass('separated');
    legendItem.get(0).appendChild(separated.get(0));

    var maxValue = $('<span />');
    maxValue.addClass('maxValue')
    legendItem.get(0).appendChild(maxValue.get(0));

    legend.get(0).appendChild(legendItem.get(0));
}
$('.legendWrapper').get(0).appendChild(legend.get(0));

CSS:

.legendWrapper {    

}

.separated {
    text-align: center;
}

.minValue {
    text-align: left;        
}
.maxValue {
    text-align: right;
}

.legend {
    background-color: black;
    position: fixed;       
    opacity: 0.7;
    margin: 10px;
    padding: 5px;
    width: 150px;
    height: 100px;
    clear: both;        
    right: 80px;
    top: 800px;
}

.legendColor {
    height: 12px;
    width: 12px;
    margin-right: 3px;
    float: left;     
    color: white;        
    opacity: 1;   
}

.legendItem {
    color :white; 
    height: 20px;       
    opacity: 1;
}

当我将 text-align 添加到 legendItem 时,它会对齐文本,但会对齐所有跨度,我想逐跨对齐。

你能告诉我如何解决这个问题吗?

最佳答案

希望我能正确阅读您的问题....

更改添加跨度的顺序:

var maxValue = $('<span />');
maxValue.addClass('maxValue')
legendItem.get(0).appendChild(maxValue.get(0));

var separated = $('<span />');
separated.addClass('separated');
legendItem.get(0).appendChild(separated.get(0));

var minValue = $('<span />');
minValue.addClass('minValue')
legendItem.get(0).appendChild(minValue.get(0));

Span 是内联元素,因此它们将按照您将它们添加到 DOM 中的顺序排列。

您可以删除所有文本对齐属性,因为如果排序解决了您的问题,您似乎不需要它们。

编辑:

<div class="con">
    <div class="lft">MAX_VAL</div>
    <div class="sep"> - </div>
    <div class="rgt">MIN_VAL</div>
</div>

.con {overflow:hidden;}
.lft {width:100px; float:left; text-align:right; }
.sep { float:left; }
.rgt {width:100px; float:left; text-align:left; }

关于css - javascript 中的文本对齐问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12282928/

相关文章:

html - Css 中的 Sticky Footer 会妨碍容器,或者创建额外的空间

jquery - 如何使用 jquery 从没有任何 id 或类的 div 中删除 anchor 标记?

javascript - jQuery on click事件到scrollToTop然后重定向

css - heroku 不从供应商 .css 文件加载图像

javascript - 如何将链接添加到 "Title"或 "image"

html - 无法更改图像的不透明度

javascript - 如何在 JavaScript 中获取 html 实体的数字、十六进制和 ISO

css - 删除特定媒体查询的背景

css - 动画 ng-repeat on Remove

javascript - 如何使用带有复选框和文本输入的 "other"选项