android自带浏览器兼容问题,如何解决text-align: justify;浏览器、安卓手机不兼容问题...

本文详细介绍了如何处理响应式网页中文字两端对齐的浏览器兼容性问题,包括尝试使用text-align-last、添加隐藏元素、使用空标签以及text-justify属性。在遇到安卓内置浏览器不兼容时,通过在文字间添加空格成功解决。同时,文中提到了在实际项目中的应用案例——中国银河证券APP。

今天需要切一个响应式网页,有一行文字,需要实现两端对齐。

代码如下:

.h_text{

text-align: justify;

width: 200px;

}

这一行要两端对齐

根据经验找到text-align:justify;首先用PC端浏览器测试,刷新网页没起作用。

在网上搜寻,发现“只有一行文字或者最后一行文字,是没效果的,默认靠左对齐”。

解决办法有以下几个:

1、使用“text-align-last:justify;”意思是告诉电脑,“这是最后一行代码,也给我两端对齐了”

.h_text{

text-align-last: justify;

width: 200px;

}

这一行要两端对齐

但text-align-last并不是所有浏览器都兼容。

2、在文字后边加一行,然后给隐藏了

.h_text{

text-align: justify;

width: 200px;

}

.span_hid{

display: inline-block;

width: 100%;

opacity: 0;

}

这一行要两端对齐

隐藏的一段代码

隐藏后文本还是会占位置,影响布局效果不好,而且这么low的行为,不符合一个工程师的身份。

3、在文字后边加一个空标签

.h_text{

text-align: justify;

width: 200px;

}

.span_hid{

display: inline-block;

width: 100%;

}

这一行要两端对齐

嗯,这样就好多了,但是对IE浏览器还是有些问题。

4、这时需要添加“text-justify:inter-ideograph;”大意就是,增加或减少词间的空格

.h_text{

text-align: justify;

text-justify: inter-ideograph;

width: 200px;

}

.span_hid{

display: inline-block;

width: 100%;

}

这一行要两端对齐

完美解决了对IE浏览器的兼容。

如果只兼容PC端浏览器,就已经解决了。

But,还要兼容手机浏览器。

QQ、微信软件内打开网页,没问题。下载安装的浏览器:QQ、UC等也没有问题。iPhone手机自带浏览器也没有问题。

但是用安卓手机再带的浏览器,问题就出现了。完美的向左靠齐,怎么搞就是没效果。

于是又重新走了一遍1-4的流程。结果并没什么用。

文章中提到:IE浏览器中需要文字间添加空格。那么安卓浏览器会不会也这样。

5、于是给每个文字之间添加了一个空格,成功解决了各浏览器不兼容、手机端不兼容的问题。

.h_text{

text-align: justify;

text-justify: inter-ideograph;

width: 200px;

}

.span_hid{

display: inline-block;

width: 100%;

}

这 一 行 要 两 端 对 齐

当然文字少是没啥问题,但是文字比较多的话,需要一些JS代码给文字之间加空格。

var text= "这一行要两端对齐";

var result = text.split("").join(" ");

至于添加after伪类,更加简洁一些。没有应用。

项目实例:中国银河证券APP,以供参考。

<think>好的,我现在需要详细解释一下text-align: justify;、text-align-last: justify;和text-align: justify-all;这三个CSS属性。首先,我得回忆一下自己对这些属性的理解,确保没有记错,然后可能需要查证一些细节,特别是关于text-align: justify-all;的,因为好像这个属性不太常用或者可能已经被弃用了? 首先,text-align: justify;的作用是让文本两端对齐,这在中文排版中常见,比如报纸或杂志,左右两边都对齐,看起来更整齐。这个属性会对齐除最后一行外的所有行,最后一行通常是左对齐的,这可能和语言的方向有关,比如在英文中,如果文本方向是从左到右,最后一行左对齐;如果是右到左的语言,最后一行可能右对齐。 接下来是text-align-last: justify;,这个属性专门用来设置最后一行文本的对齐方式。当使用text-align: justify;时,最后一行默认不是两端对齐的,但如果想要最后一行也两端对齐,就需要用到text-align-last: justify;。不过,可能需要考虑浏览器兼容性的问题,比如旧版本的浏览器可能不支持这个属性。 然后是text-align: justify-all;,这个属性我记得在之前的规范中可能被提议过,但可能没有被广泛支持,或者已经被移除了?它的作用可能是让所有行,包括最后一行都两端对齐,类似于同时应用text-align: justify;和text-align-last: justify;的效果。不过需要确认这个属性是否真的存在,或者是否属于某个特定的CSS版本,比如CSS3中的某个模块,或者已经被废弃了。 为了确保准确性,我需要查阅相关的CSS规范或者可靠的文档。例如,MDN Web Docs通常是一个很好的资源。根据MDN,text-align: justify-all;确实存在,但可能属于CSS Text Module Level 3的提案,并且目前浏览器支持非常有限,甚至可能没有实现。它的作用是将所有行强制两端对齐,包括最后一行,但实际使用中可能无法得到支持,因此推荐使用text-align: justify;配合text-align-last: justify;来实现类似的效果。 同时,需要注意不同浏览器对这些属性的支持情况。例如,text-align-last在IE和Edge中可能需要前缀,或者部分版本支持。而justify-all可能几乎没有浏览器支持,所以实际项目中可能无法使用。 此外,还要考虑使用场景。两端对齐可能在中文排版中效果不错,因为每个字等宽,但在英文中,由于单词长度不一,可能会出现单词间距过大的情况,影响可读性。这时候可能需要配合hyphens属性或者使用连字符来优化。 总结一下,回答中需要涵盖以下几点: 1. text-align: justify;的作用和限制(最后一行不对齐)。 2. text-align-last: justify;的作用,如何单独调整最后一行的对齐。 3. text-align: justify-all;的可能作用和兼容性问题,指出其可能不被支持,建议替代方案。 4. 实际应用中的注意事项,比如浏览器兼容性、可读性问题等。 可能还需要提供示例代码,说明如何同时使用text-aligntext-align-last来达到所有行两端对齐的效果。同时,强调justify-all的不实用性,建议避免使用,转而使用其他属性组合。</think>以下是关于 `text-align: justify;`、`text-align-last: justify;` 和 `text-align: justify-all;` 的详细解释: --- ### 1. **`text-align: justify;`** - **作用**:将文本内容**两端对齐**(分散对齐),使段落左右边缘整齐(常见于书籍、报纸排版)。 - **对齐规则**:除**最后一行**外,所有行的左右两端对齐(通过调整字符/单词间距)。 - **最后一行行为**:默认保持自然对齐(左对齐或右对齐,取决于语言方向)。 - **适用场景**:多行文本段落,需要整洁的视觉效果(中文排版常用)。 - **示例**: ```css p { text-align: justify; } ``` --- ### 2. **`text-align-last: justify;`** - **作用**:**单独控制最后一行**的对齐方式,强制其两端对齐。 - **需配合**:通常与 `text-align: justify;` 一起使用,确保所有行(包括最后一行)对齐。 - **兼容性**:主流浏览器支持较好,但旧版本可能需要前缀(如 `-moz-text-align-last`)。 - **示例**: ```css p { text-align: justify; text-align-last: justify; } ``` --- ### 3. **`text-align: justify-all;`** - **作用**:**强制所有行(包括最后一行)两端对齐**。 - **现状**:属于 CSS Text Module Level 3 提案,**浏览器支持极差**(几乎无实际应用)。 - **替代方案**:使用 `text-align: justify; + text-align-last: justify;` 组合实现类似效果。 - **示例**(理论上): ```css p { text-align: justify-all; /* 不推荐,缺乏支持 */ } ``` --- ### 注意事项 1. **中英文差异**: - 中文:两端对齐效果较好(字符等宽)。 - 英文:可能导致单词间距过大,可配合 `hyphens: auto;` 添加连字符优化。 2. **兼容性**: - `text-align-last: justify;` 在 IE11+ 和现代浏览器中支持,但需测试目标平台。 - `justify-all` 不建议使用。 --- ### 总结 - **标准两端对齐**:`text-align: justify;` - **包含最后一行对齐**:组合 `text-align: justify;` + `text-align-last: justify;` - **避免使用 `justify-all`**:因兼容性问题,改用替代方案。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值