css常见的样式异常

昨天周一工作上忙的透支了,昨晚回到家,收拾完了之后十一点多了,突然发现自己今天没有更新简书...再去整理资料已经来不及写新文章了,就算写了新文章发布了,内容质量也是不堪的,不如不写了!实不相瞒,我挑战了简书的日更计划,由于昨天没有发布新文章,所以前功尽弃...伤心之余,还是要捡起这个flag。
那今天就来聊聊前端css样式的一些怪异现象吧!

1. display: inline-bloack的元素,如何解决间隙?

  • 代码
// html
<div class="page">
  <div class="inline_block ib1"></div>
  <div class="inline_block ib2"></div>
</div>
// css
.inline_block {
  display: inline-block;
  width: 40%;
  height: 50px;
}
.ib1 {
  background: blue;
}
.ib2 {
  background: red;
}
  • 现象 如下图;两个div之间有间隙

    间隙

  • 解决
    方法一:因为标签之间的空格,因此去掉空格就可以解决了;但是这个方法很笨
    方法二:font-size:0这个方式可以解决空隙的问题

.page {
  font-size: 0;  // 父级元素设为font-size:0
}
.inline_block {
  display: inline-block;
  width: 40%;
  height: 50px;
  font-size: 0; // 还有这里
}

2. 设置opacity之后,子元素也会出现透明度

  • 代码
// html
<div class="page">
  <div class="opacity">
    <span>opacity</span>
  </div>
</div>
// css
.page {
  opacity: 0.5;
}
.opacity {
  width: 40%;
  height: 50px;
  font-size: 15px;
  background: #000;
}
span {
  font-size: 20px;
  line-height: 50px;
  color: red;
}
  • 现象 如下图
    透明度
  • 解决
    不要使用opacity,使用background: rgba()方法来设置
// css 更改
.page {
  background: rgba(255, 255, 255, 0.5);
}

3. <img>和<span>元素,垂直方向上,不对齐

  • 代码
<div class="page">
  <img src="../../assets/images/ceb_3x.png" alt>
  <span>text</span>
</div>
  • 现象 如下图
    垂直未居中
  • 解决 将img元素的vertical-align设置为middle
img {
  vertical-align: middle;
}

4. 弹窗出现,弹窗后面的元素还可以滚动

  • 解决
    设置body的overflow:hidden,关闭弹窗的时候,再恢复overflow的属性

5. 最外层div想要占满一屏

设置div的css样式为

display: absolute;
min-height: 100%;

6. input 设置disabled属性之后 placeholder变成黑色

某些移动端会出现这样的奇怪样式,但是普遍情况下还是不会有这种怪异现象的

input::-webkit-input-placeholder{
  color: #cccccc;
  -webkit-text-fill-color: #ccc;
  opacity: 1;
  -webkit-opacity:1;
}
input:disabled{
  background: none;
  color: #333;
  -webkit-text-fill-color: #333;
  opacity: 1;
  -webkit-opacity:1;
}
input:disabled::-webkit-input-placeholder{
  color: #cccccc;
  -webkit-text-fill-color: #ccc;
  opacity: 1;
  -webkit-opacity:1;
}

7. input上边框有阴影

有些移动端会出现这样的问题,但是普遍情况下不会出现这样的问题

input:focus{outline:none}
-webkit-appearance: none;

8. pre标签中支持换行

pre标签中的内容是不支持换行,所以换行的话,需要自己设置换行属性

pre {
    white-space: pre-wrap;
    white-space: -moz-pre-wrap;
    white-space: -pre-wrap;
    white-space: -o-pre-wrap;
    word-wrap: break-word;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,167评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,826评论 1 45
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,445评论 2 66
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 16,882评论 32 459
  • display: none; 与 visibility: hidden; 的区别 联系:它们都能让元素不可见 区别...
    纹小艾阅读 2,013评论 0 1

友情链接更多精彩内容