码迷,mamicode.com
首页 > Web开发 > 详细

CSS问题集合

时间:2018-03-17 21:38:24      阅读:342      评论:0      收藏:0      [点我收藏+]

标签:属性   缩小   item   最好   容器   fixed   原因   蓝色   div   

1.指定宽高

要求是设置图片正方形,用如下css发现宽高不是1:1,查看计算结果81.125*93.750。.vote-img-item对于的div是这个宽高,

 

技术分享图片

<div class="vote-content">
    <div class="vote-img-item">
        <img _src="/data/uploads/2017/11/13/9d16d0eca2daa622f0b33b5cae1d8ed9.jpg" src="/data/uploads/2017/11/13/9d16d0eca2daa622f0b33b5cae1d8ed9.jpg">
                        </div>
    <div class="vote-f-item">
                        山核桃+杏仁+桃仁+松子+腰果+瓜子+花生                                    

  </div>
</div></div>

css:

.vote-content {
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    min-height: 44px;
    padding: 10px 15px;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
}
.vote-img-item {
    flex: 1 1 auto;
    width: 50%;
    height: 2.5rem;
    width: 2.5rem;
}
.vote-img-item img {
    height: 100%;
    width: 100%;
}

产生这个问题的代码是 .vote-img-item样式中的flex: 1 1 auto;在flex布局中 flex-grow: 1; flex-shrink: 1;  可以放大缩小元素,这里只要设置不让flex布局的子项放大和缩小,即flex: 0 0 auto;。

 2.img标签有间隔

技术分享图片

代码:

 

img标签display:inline,类似文字,西文在一行显示中不是完全垂直居中,是基线对其,是垂直中间偏下一点(底部对其,可以参看上面的img),所以这里的img看起来上部有一点间隔,可以改变为display:block。

3.table宽度

问题:设置宽度后,小于某个宽度,它的大小不会再改变。

技术分享图片

技术分享图片

图a自动布局时有span显示货连续文本之间有空格时,这里分两列显示

技术分享图片

图b自动布局,p标签内的文字没有空白符时,显示列。

原因:默认是自动表格布局,自动布局下单元格中文本包裹在多个单行标签(或匿名文本),即文本被分别包含和被单独的标签包含或(只在一个匿名行框下,且文本中没有空白符(使用&nbsp;标识,在chrome中测试是显示图a,手动按空格键则显示为图b))两者的文字的布局不同。真实原因待查?

解决:加table-layout:fixed;table的宽度可以根据设置的值缩放到相应的大小。

技术分享图片

固定表格布局:
固定表格布局与自动表格布局相比,允许浏览器更快地对表格进行布局。
在固定表格布局中,水平布局仅取决于表格宽度、列宽度、表格边框宽度、单元格间距,而与单元格的内容无关。
通过使用固定表格布局,用户代理在接收到第一行后就可以显示表格。

自动表格布局:
在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的。
此算法有时会较慢,这是由于它需要在确定最终的布局之前访问表格中所有的内容。

4.表格table-layout:fixed布局时,单元格设置宽度无效。

table加上table-layout:fixed属性后,表格的宽度被table的第一行固定,后面添加的width属性失效了,当添加了colspan合并单元格后,后面单元格的宽度被平均分配了。
解决办法:在table的第一行添加colgroup属性,预先把所有列的宽度固定。
例如:
<table width="93%" border="1" align="center" cellpadding="2" cellspacing="0" style ="table-layout:fixed;">
<colgroup>
<col width="20"></col>
<col width="30"></col>
<col width="40"></col>
<col width="50"></col>
</colgroup>
<tr>...</tr>
</table>

 4.左侧蓝色部分是左浮动,右侧蓝色背景部分没做布局处理,红色部分是右浮动,去除浮动影响(clearboth...),

发现外框的高度就是不对,按钮和评论文字的外框正好包裹它们,而它们的父容器莫名多出下面一截,高度和左边蓝色选框一致

。猜测右侧的浮动受到左侧影响,具体原因待查。

解决:左右布局时,左侧用浮动,右侧最好用position:absolute布局,或float:left这些,消除左侧浮动的影响,建立自己独立的上下文,就不会有影响了

技术分享图片

 

CSS问题集合

标签:属性   缩小   item   最好   容器   fixed   原因   蓝色   div   

原文地址:https://www.cnblogs.com/xiaozhuyuan/p/7998347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!