#前端开发避坑技巧002# 【二】 (路由、页面跳转、底部板块浮动问题、盒子的浮动问题、 如何通过定位来调整盒子的位置、子组件与父组件的关系、 排版的问题、CSS伪类选择器nth-child)

#前端开发避坑技巧002

路由、页面跳转、底部板块浮动问题、盒子的浮动问题、
如何通过定位来调整盒子的位置、子组件与父组件的关系、
排版的问题、CSS伪类选择器nth-child

(1)点击页面上的图片,跳转到另一个页面
只需要在图片上加一个路由,就可以解决
反正就是找对应关系

<rounter-link></rounter-link>

因为路由相当于一个a标签,点击即可
直接上代码

  <div class="course-box">
            <router-link :to="url">
                <img src="/static/image/course.png" alt="" >
            </router-link>
        </div>

<script>
import ArticleTitle from "./ArticleTitle";

export default {
    name: "course",
    components: {ArticleTitle},
    data () {
        return {
            url:'/library'
        }
    }
}

</script>

(2)底部板块浮动问题

页面底部的版块会浮动到中部位置,
有一个原因可能是你在前面的位置加了浮动,导致盒子脱离了文档流,
所以下面的盒子就会顶到前面去,所以需要清除浮动的影响

(3)盒子的浮动问题
如果子盒子要在父盒子里面进行浮动的话,一定要给父盒子加宽和高

(4)如何通过定位来调整盒子的位置
子盒子如何在父盒子中居中、居下等显示,使用定位的方法(子绝父相)

第一种情况:子盒子垂直居中显示

父盒子代码:
使用绝对定位position: relative;

.box {
    margin: 0 auto;
    position: relative;
    min-height: 36px;
    width: 416px;
    height: 234px;
    border-radius: 5px;
}

子盒子的代码:
使用相对定位position: absolute;
然后把上下左右全部设置为0即可

.box2 {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 416px;
    height: 234px;
    background: #333333;
}

第二种情况:子盒子垂直居下显示

父盒子代码:
使用绝对定位position: relative;

.box {
    margin: 0 auto;
    position: relative;
    min-height: 36px;
    width: 416px;
    height: 234px;
    border-radius: 5px;
}

子盒子的代码:
使用相对定位position: absolute;
然后把左右下全部设置为0即可
因为如果是垂直居下的话,那就是在父盒子的下方显示,
那距离上面肯定是有高度的,所以这个时候不需要设置top

.box1 {
     position: absolute;
     left: 0;
     right: 0;
     bottom: 0;
     margin: auto;
     width: 416px;
     height: 66px;
     background: #333333;
     border-radius: 5px;
     opacity: 0.4;
 }

第三种情况:子盒子垂直居上显示

父盒子代码:
使用绝对定位position: relative;

.box {
    margin: 0 auto;
    position: relative;
    min-height: 36px;
    width: 416px;
    height: 234px;
    border-radius: 5px;
}

子盒子的代码:
使用相对定位position: absolute;
然后把左右上全部设置为0即可
因为如果是垂直居上的话,那就是在父盒子的上方显示,
那距离下面肯定是有高度的,所以这个时候不需要设置bottom

.box1 {
     position: absolute;
     left: 0;
     right: 0;
     top: 0;
     margin: auto;
     width: 416px;
     height: 66px;
     background: #333333;
     border-radius: 5px;
     opacity: 0.4;
 }

(5)子组件与父组件的关系

首先为什么会用到子组件和父组件?
那是因为在实际的开发过程中,
为了美观以及一些版块是系列性,
以及为了能够更加高效地进行开发,我们会通过父子组件来进行操作,简化代码

它们之间的步骤以及关系是这样的:

一般这些可以复用的子组件,
我们会在components里面再建一个文件夹,
进行放置这些子组件

  • 首先,我们先创建一个子组件的vue文件名
    这里我们创建为“ArticleTitle.vue”
  • ArticleTitle.vue的中创建props,然后创建一个名为ArticleTitle的变量属性
    在这里插入图片描述
  • 在父组件“meeting.vue” 这个文件里面,注册子组件
    并在template中加入child标签(此处为),再通过v-bind进行绑定属性并赋值
    在这里插入图片描述
  • 通过data里面,return一个值,传回给子组件
    在这里插入图片描述
    (6)父子组件对应关系

里面的这几个值一定要相对应

子组件里面的:
在这里插入图片描述
父组件里面的:
在这里插入图片描述
圈蓝的这些位置,必须是同一个数值

(7)报错问题常见:

  • 在页面里面,一定要加上一个最大的div进行包裹
  • 比如今天你在公司的电脑里面,有加了一些插件。例如动画、element在ws里面,那么你在其他电脑的ws里面,要先进行更新,就是要输入“npm update”
 <div class="meetings">
        <titleBanner v-bind:message="num"></titleBanner>
        <learnBox v-bind:newList="list" ></learnBox>
    </div>

(8)排版的问题:

CSS伪类选择器nth-child 选择x的倍数个元素写法

   ul li:nth-child(3n+3) {
       color: #ccc;
   }

上面的css是干什么用的,
它就是在无序列表里面选择是3倍数的列。也就是第3个,第6个,第9个等等。
但是它工作原理是怎样的那?如果遇到其它情况你又如何使用nth-child那?

总的来说nth-child()
圆括号里面支持两个关键词:even与odd。
他们应该很明显的,
even选择偶数标签,如第2、第4、第6等等。
odd选择奇数标签,如第1,第3,第5等等。
————————————————

一些常用的css伪类选择语法在这里插入图片描述
举个例子,就是我们想在页面上排成上下两行各8个的相同版型
那我们只需要设置同一行的最后一个盒子的magain-right为0就可以了
就是

.big-box {
    display: inline-block;
    width: 310px;
    height: 300px;
    background: #FFFFFF;
    box-shadow: 0 0 20px 0 rgba(206, 206, 206, 0.5);
    border-radius: 5px;
    margin-right: 20px;
    margin-bottom: 28px;
}
.big-box:nth-child(4n){
    margin-right: 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值