css常见功能实现

css常见功能实现

CSS实现hover控制显示隐藏

/* B元素默认不显示 */
.B {
    display: none;
}
 
 
/* A元素hover时显示B */
.A:hover .B {
    display: block;
}

利用translate()进行水平垂直居中

position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);

对于默认字体最小为12px解决方法

  font-size: 14px;
  transform: scale(0.8);
  
transform:scale()`这个属性只可以缩放可以定义宽高的元素,而行内元素是没有宽高的,我们可以加上一个`display:inline-block;

水平居中问题

如果被设置的元素为文本、图片等行内元素时,在父元素中设置text-align:center实现行内元素水平居中,将子元素的设置为display:inline-block,使子元素变成行内元素;

<div class="parent" style="background-color: gray;">
    <div class="child" style="background-color: light-blue;">demo</div>
</div>

块状元素的水平居中(定宽)

​ 当被设置元素为定宽块级元素时用text-align:center;就不起作用了。可以通过设置“margin: 0 auto;”来实现居中的。

.child {
    width: 200px;
    margin: 0 auto;
}

块状元素的水平居中(不定定宽)

    在实际工作中,我们会遇到需要为“不定宽度的块级元素”设置居中,如网页上的分页导航,因为分页的数量是不确定的,所以,不能通过设置宽度来限制它的弹性。

   可以直接给块级元素设置text-align:center;来实现,也可以给父元素加text-align:center;来实现居中效果。
<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>
.container {
    text-align: center;
    background: beige;
}
.container ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: inline-block;
}
.container li {
    margin-right: 8px;
    display: inline-block;
}

垂直居中

和水平居中一样,垂直居中,首先需设定两个条件即父元素是盒子容器且高度已经设定

子元素是行内元素,高度是由其内容撑开的。

​ 这种情况下,需要通过设定父元素的line-height为其高度来使得子元素垂直居中

<div class="wrap line-height">
    <span class="span">111111</span>
</div>
.wrap {
    width: 200px;
    height: 300px;
    line-height: 300px;
    border: 2px solid #ccc;
}
.span {
    background: red;
}

子元素是块级元素但子元素高度没有设定,在这种情况下,实际上是不知道子元素的高度的,无法通过计算得到padding或margin来调整。

可以通过给父元素设定display:table-cell;vertical-align:middle;来解决。

CSS 函数

CSS var() 函数

CSS 语法

var(custom-property-name, value)
描述
custom-property-name 必需。自定义属性的名称,必需以 -- 开头。
value 可选。备用值,在属性不存在的时候使用。

calc() 函数

定义与用法

calc() 函数用于动态计算长度值。

  • 需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px)
  • 任何长度值都可以使用calc()函数进行计算;
  • calc()函数支持 "+", "-", "*", "/" 运算;
  • calc()函数使用标准的数学运算优先级规则;
posted @ 2021-06-25 03:57  一星一辰  阅读(89)  评论(0编辑  收藏  举报