前端小练--社区主页

news2024/11/23 13:39:10

文章目录

  • 前言
  • 首页
    • 结构
    • 固定导航栏
      • 左侧导航item
      • item标志
    • 头部推荐
    • 文章展示ITEM实现
      • ToolTip
      • 完整实现
  • 首页完整实现

前言

废话不多说,直接看到效果:
请添加图片描述
是的也许你已经发现了这个页面和某个网站长得贼像。没错是这样的,这个布局我确实看起来很舒服。当然这个只是我作为毕业设计的一部分。中文编程语言+对应社区平台才是我完整的毕设。

那么同样的,废话不多说,直接发车了。

首页

结构

首先的话,还是老规矩,先看到结构:

<template>
    <div class="body">
        <div class="left-affix">

            <div class="affix-item ribbon">
                Hlang解析<span>付费</span>
            </div>

            <div class="affix-item">
                Hlang文档
            </div>

            <div class="affix-item bottom_line">
                Hlang下载
            </div>
            
            <div class="affix-item">
                关注
            </div>

            <div class="affix-item">
                综合
            </div>

            <div class="affix-item">
                前端
            </div>

            <div class="affix-item">
                后端
            </div>

            <div class="affix-item">
                嵌入式
            </div>

            <div class="affix-item">
                人工智能
            </div>

        </div>

        <div class="main">
            <!-- 推荐榜单文章、专栏,作者 -->
            <div class="top-recommend">
                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-article.png">
                        <span class="top-reco-title-text">
                            推荐文章TOP3
                        </span>
                    </div>
        
                    <div class="top-reco-cent-item" v-for="(item, index) in top_articles" :key="item">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item
                            placement="bottom"
                            effect="light"
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                {{ item }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>

                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-clounm.png">
                        <span class="top-reco-title-text">
                            推荐专栏TOP3
                        </span>
                    </div>

                    <div class="top-reco-cent-item" v-for="(item, index) in top_columns" :key="item">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item
                            placement="bottom"
                            effect="light"
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                {{ item }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>

                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-people.png">
                        <span class="top-reco-title-text">
                            推荐作者TOP3
                        </span>
                    </div>

                    <div class="top-reco-cent-item" v-for="(item, index) in top_writers" :key="index">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item.name
                            placement="bottom"
                            effect="light"
                           
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                <img class="top-reco-title-img" :src="item.avatar">
                                &nbsp;
                                {{ item.name }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>
            </div>
            <!-- 推荐内容(文章,专栏,专栏分两类,系统专栏,用户自己创建的专栏) -->
            <div class="reco-body-content">

                <div class="body-content-nav">
                    <el-breadcrumb separator="/">
                    <el-breadcrumb-item :to="{ path: '/' }">推荐</el-breadcrumb-item>
                    <el-breadcrumb-item :to="{ path: '/' }">最新</el-breadcrumb-item>
                    <el-breadcrumb-item>Hlang社区</el-breadcrumb-item>
                    </el-breadcrumb>
                </div>
                <div class="reco-body-content-items">
                        <BlogItem></BlogItem>
                        <BlogItem></BlogItem>
                        <BlogItem></BlogItem>
                        <BlogItem></BlogItem>
                        <BlogItem></BlogItem>
                        <br>
                </div>
            </div>

        </div>
        <!-- 右边的侧边栏 -->
        <div class="right-affix">

            <div class="r-affix-it day">
                <div class="day-left">
                    <div class="day-left-top">
                        <span class="s-p-top">累计点亮</span>
                        &nbsp;
                        <span class="s-p-top-day">127天</span>
                    </div>
                        <span class="s-p-but">点亮在社区的每一天</span>
                </div>

                <div class="day-right">
                    <el-button type="primary" :icon="Check" circle />
                </div>
            </div>

            <!-- 广告走马灯 -->
            <div class="r-affix-it carousel">
    
                <el-carousel :interval="5000" arrow="always">
                <el-carousel-item v-for="item in affix_imgs" :key="item">
                <!-- <h3 text="2xl" justify="center">{{ item }}</h3> -->
                    <div>
                        <img class="img-affix-r" :src="item">
                    </div>
                </el-carousel-item>
                </el-carousel>
            
            </div>



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

这次的话,结构看起来稍微复杂了一点,但是实际上的话,主体结构是很简单的;
在这里插入图片描述
只不过,里面各个小组件之间有不同的布局而已。

当然在这里,还封装了一个组件,也就是文章item的一个展示。

固定导航栏

ok,我们这里的话,主要看到的是左边的固定的导航栏,因为右边那个是一样的。左边这个还多了东西。

左侧导航item

首先我们先看到主体结构:

        <div class="left-affix">

            <div class="affix-item ribbon">
                Hlang解析<span>付费</span>
            </div>

            <div class="affix-item">
                Hlang文档
            </div>

            <div class="affix-item bottom_line">
                Hlang下载
            </div>
            
            <div class="affix-item">
                关注
            </div>

            <div class="affix-item">
                综合
            </div>

            <div class="affix-item">
                前端
            </div>

            <div class="affix-item">
                后端
            </div>

            <div class="affix-item">
                嵌入式
            </div>

            <div class="affix-item">
                人工智能
            </div>

        </div>

先看到这个对应的css


.left-affix{

    cursor: pointer;
    padding-top: 30px;
    position: fixed;
    top: 13.5%;
    left: 14.5%;
    border-radius: 10px;
    width: 120px;
    height: 500px;
    background-color: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-items: center;
    gap: 10px;
}



.affix-item{

    /* font-family: Georgia; */
    font-weight: 600;
    display: flex;
    justify-items: center;
    align-items: center;
    width: 80%;
    height: 45px;
    text-align: center;
    font-size: 18px;
    color: rgb(75, 73, 73);
    border-radius: 10px;
    padding-left: 15px;
    /* border-bottom: thick double #32a1ce; */
    
}
.affix-item:hover{
    
    background-color: rgb(229, 232, 232);
    color: rgb(43, 115, 230);
}

这个的话就是flex竖直的主轴,然后居中,这个没啥。

item标志

然后的话,主要在这里要说明的是这个:
在这里插入图片描述
的一个实现。

没错,这个就是这个项目盈利的地方。软件都是开源的,但是解析是收费的。啥意思,其实就像有些开源项目一样,大体文档是免费的,但是详细文档,如何实现,设计是收费的,你可以选择看这个文档,也可以直接选择自己啃源码。当然这部分其实我是开源直接做gitpage上面,搞这个的,但是想着干脆做一套算了。重点是,文档会流出,防君子不防小人,但是这个在线的话,虽然也会,但是我让那些小人尽可能提高获取成本,难度。

这里的话主要是这个:

.ribbon span {
  font-size: 10px;
  font-weight: bold;
  color: #FFF;
  text-transform: uppercase;
  text-align: center;
  line-height: 20px;
  transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  width: 100px;
  display: block;
  background: #79A70A;
  background: linear-gradient(#F7E652 0%, #F7C94A 100%);
  box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);
  position: absolute;
  top: 15px; right: -13px;
}
.ribbon span::before {
  content: "";
  position: absolute; left: 0px; top: 100%;
  z-index: -1;
  border-left: 3px solid #F7C94A;
  border-right: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #F7C94A;
}
.ribbon span::after {
  content: "";
  position: absolute; right: 0px; top: 100%;
  z-index: -1;
  border-left: 3px solid transparent;
  border-right: 3px solid #F7C94A;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #F7C94A;
}

来实现,这个效果。不过注意的是,这个是放在第一个栏的!

头部推荐

之后是头部的推荐实现,就是这个:
在这里插入图片描述
这个的话,比较简单,主要是调整比较麻烦:

<div class="top-recommend">
                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-article.png">
                        <span class="top-reco-title-text">
                            推荐文章TOP3
                        </span>
                    </div>
        
                    <div class="top-reco-cent-item" v-for="(item, index) in top_articles" :key="item">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item
                            placement="bottom"
                            effect="light"
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                {{ item }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>

                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-clounm.png">
                        <span class="top-reco-title-text">
                            推荐专栏TOP3
                        </span>
                    </div>

                    <div class="top-reco-cent-item" v-for="(item, index) in top_columns" :key="item">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item
                            placement="bottom"
                            effect="light"
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                {{ item }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>

                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-people.png">
                        <span class="top-reco-title-text">
                            推荐作者TOP3
                        </span>
                    </div>

                    <div class="top-reco-cent-item" v-for="(item, index) in top_writers" :key="index">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item.name
                            placement="bottom"
                            effect="light"
                           
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                <img class="top-reco-title-img" :src="item.avatar">
                                &nbsp;
                                {{ item.name }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>
            </div>

主体就是一个flex布局,就可以了:

.top-recommend{

    display: flex;
    align-items: center;
    justify-items: center;
    gap: 10px;
    width: 100%;
    height: 200px;
    border-radius: 10px;
    background-color: white;
}

.top-reco-title{

    padding-top: 3px;
    display: flex;
    justify-items: center;
    align-items: center;
    width: 100%;
    height: 35px;
    border-bottom: thick double #32a1ce;
}

.top-reco-title-text{
    text-align: center;
    padding-left: 10px;
}

.top-reco-title-img{
    padding-left: 5px;
    width: 30px;
    height: 30px;
    border-radius: 30px;
    background-color: white;
}

文章展示ITEM实现

之后的话,就是,这个组件。
在这里插入图片描述

ToolTip

然后,这个组件的话有个点,就是这个:
在这里插入图片描述

这个东西的话,是基于element-plus的那个tooltip实现的。

                <el-tooltip placement="top" effect="light">
                    <template #content>
                        <div class="writer-info-show">
                            <div class="w-i-s-top">
                                <!-- 作者信息 -->
                                <div class="w-i-s-top-info">
                                    <!-- 头像 -->
                                    <img src="~@/assets/image/card1.png" class="w-i-s-t-info-avator">
                                    <div class="w-i-s-top-info-text">
                                        <div class="w-i-s-top-info-text-title overtext">
                                            Huterox
                                        </div>
                                        <div class="w-i-s-top-info-text-motto overtext">
                                            除非我不想赢,否则没人能让我输
                                        </div>
                                    </div>
                                </div>
                                <!-- 关注 -->
                                <div class="w-i-s-top-add">
                                    <el-button type="primary" round>关注</el-button>
                                </div>
                                
                            </div>
                            <div class="w-i-s-bottom">
                                <div class="w-i-s-bottom-item overtext">
                                    粉丝:60
                                </div>
                                <div class="w-i-s-bottom-item overtext">
                                    博文:350
                                </div>
                            </div>
                        </div>
                    </template>
                    <div class="m-l-t-item back_bule overtext">
                        Huterox
                    </div>
                </el-tooltip>

这个功能的话,用的应该是比较多的。不过在我这里的话,也就是这种item会用到,所以没有封装成新的组件,用的频率虽然高,但是和博文ITEM一起用。

完整实现

ok,说完了这些细节,我们来看到完整代码:

<template>
    <div class="main-item">
        <!-- 左边 -->
        <div class="main-left">
            <div class="main-left-top">
                <!-- 作者 -->
                <el-tooltip placement="top" effect="light">
                    <template #content>
                        <div class="writer-info-show">
                            <div class="w-i-s-top">
                                <!-- 作者信息 -->
                                <div class="w-i-s-top-info">
                                    <!-- 头像 -->
                                    <img src="~@/assets/image/card1.png" class="w-i-s-t-info-avator">
                                    <div class="w-i-s-top-info-text">
                                        <div class="w-i-s-top-info-text-title overtext">
                                            Huterox
                                        </div>
                                        <div class="w-i-s-top-info-text-motto overtext">
                                            除非我不想赢,否则没人能让我输
                                        </div>
                                    </div>
                                </div>
                                <!-- 关注 -->
                                <div class="w-i-s-top-add">
                                    <el-button type="primary" round>关注</el-button>
                                </div>
                                
                            </div>
                            <div class="w-i-s-bottom">
                                <div class="w-i-s-bottom-item overtext">
                                    粉丝:60
                                </div>
                                <div class="w-i-s-bottom-item overtext">
                                    博文:350
                                </div>
                            </div>
                        </div>
                    </template>
                    <div class="m-l-t-item back_bule overtext">
                        Huterox
                    </div>
                </el-tooltip>
                <!-- 日期 -->
                <div class="m-l-t-item gary overtext">
                    2023-8-4
                </div>
                <!-- 专栏 -->
                <div class="m-l-t-item back_bule gary overtext">
                    深度学习
                </div>
            </div>
            <div class="main-left-title overtext">
                手写目标检测框架
            </div>
            <div class="main-left-centent overtext gary">
                对yolo算法进行复现
            </div>
            <div class="main-left-bootom">
                <!-- 浏览量 -->
                <div class="m-l-b-item-i">
                    <img src="~@/assets/image/read.png" class="m-l-b-item-img">
                    <div class="m-l-b-text">123</div>
                </div>
                <!-- 点赞量 -->
                <div class="m-l-b-item-i">
                    <img src="~@/assets/image/good.png" class="m-l-b-item-img">
                    <div class="m-l-b-text">666</div>
                </div>
                <!-- 评论数 -->
                <div class="m-l-b-item-i">
                    <img src="~@/assets/image/comment.png" class="m-l-b-item-img">
                    <div class="m-l-b-text">123</div>
                </div>
                
            </div>
        </div>
        <!-- 右边图片 -->
        <div class="main-right">
            <img src="~@/assets/image/card1.png" class="main-right-img">
        </div>
        

    </div>
</template>

<script lang="ts" setup>
</script>

<style scoped>

.w-i-s-bottom{

    display: flex;
    align-items: center;
    justify-items: center;
    font-size: 15px;
}

.w-i-s-bottom-item{
    
    margin-left: 10px;
    display: flex;
    align-items: center;
    justify-items: center;
    width: 110px;
    height: 50px;
}

.w-i-s-top-add{
    width: 80px;
    margin: 5px auto;
}

.w-i-s-top-info-text-title{
    font-weight: 600;
    width: 170px;

}
.w-i-s-top-info-text-motto{
    color: #5f6061;
    width: 170px;
}
.w-i-s-top-info-text{

    margin-left: 5px;
    height: 100%;
    margin-top: 5px;
}
.w-i-s-t-info-avator{
    width: 50px;
    height: 50px;
    border-radius: 100%;
}
.w-i-s-top-info{
    display: flex;
    width: 100px;
}
.w-i-s-bottom{
    width: 100%;
    height: 50px;
}
.w-i-s-top{
    width: 100%;
    height: 100px;
    border-bottom: thick double #32a1ce;
}

.writer-info-show{
    width: 250px;
    height: 150px;
    display: flex;
    flex-direction: column;
    background-color: white;
}

.m-l-b-text{
    display: flex;
    justify-items: center;
    align-items: center;
    font-size: 8px;
    color: #87898a;
}
.m-l-b-item-i{
    display: flex;
    width: 40px;
    
}
.m-l-b-item-img{
    height: 100%;
    width: 20px;
}

.main-right-img{
    height: 100px;
    width: 100%;
}

.main-right{
    display: flex;
    height: 100px;
    width: 20%;
}

.m-l-b-item{
    height: 100%;
    width: 60px;
}
.main-left-bootom{
    display: flex;
    justify-items: center;
    width: 100%;
    height: 15px;
    gap: 10px;
}

.main-left-centent{

    display: flex;
    justify-items: center;
    align-items: center;
    height: 30px;
    width: 100%;
    display: flex;
    justify-items: center;
    
}

.main-left-title{
    height: 25px;
    width: 100%;
    font-size: 20px;
    font-weight: bolder;
    display: flex;
    justify-items: center;
}

.m-l-t-item{

    display: flex;
    align-items: center;
    justify-items: center;
    padding-left: 3px;
    font-size: 8px;
    width: 60px;
    border-right: solid rgb(145, 142, 142);
}

.gary{
    color: rgb(135, 133, 133);
}

.back_bule:hover{
    color: rgb(17, 128, 239);
}

.main-left-top{
    cursor: pointer;
    width: 100%;
    display: flex;
    justify-items: center;
    height: 15px;
    gap: 5px;
}

.main-left{
    gap: 2px;
    display: flex;
    flex-direction: column;
    justify-items: center;
    width: 80%;
}
.overtext{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}
.main-item{

    padding: 3px;
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-items: center;
    height: 100px;
    border-bottom: thick double #32a1ce;

}
</style>

有一说一,这段时间学习数学,让我的耐心变得好了很多。因为有时候步骤就是这样繁琐,繁琐但是好歹有思路,能做。

首页完整实现

ok,那么接下来就是我们对应首页的全部实现了:

<template>
    <div class="body">
        <div class="left-affix">

            <div class="affix-item ribbon">
                Hlang解析<span>付费</span>
            </div>

            <div class="affix-item">
                Hlang文档
            </div>

            <div class="affix-item bottom_line">
                Hlang下载
            </div>
            
            <div class="affix-item">
                关注
            </div>

            <div class="affix-item">
                综合
            </div>

            <div class="affix-item">
                前端
            </div>

            <div class="affix-item">
                后端
            </div>

            <div class="affix-item">
                嵌入式
            </div>

            <div class="affix-item">
                人工智能
            </div>

        </div>

        <div class="main">
            <!-- 推荐榜单文章、专栏,作者 -->
            <div class="top-recommend">
                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-article.png">
                        <span class="top-reco-title-text">
                            推荐文章TOP3
                        </span>
                    </div>
        
                    <div class="top-reco-cent-item" v-for="(item, index) in top_articles" :key="item">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item
                            placement="bottom"
                            effect="light"
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                {{ item }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>

                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-clounm.png">
                        <span class="top-reco-title-text">
                            推荐专栏TOP3
                        </span>
                    </div>

                    <div class="top-reco-cent-item" v-for="(item, index) in top_columns" :key="item">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item
                            placement="bottom"
                            effect="light"
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                {{ item }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>

                <div class="top-reco-div">
                    <div class="top-reco-title">
                        <img class="top-reco-title-img" src="~@/assets/image/top-people.png">
                        <span class="top-reco-title-text">
                            推荐作者TOP3
                        </span>
                    </div>

                    <div class="top-reco-cent-item" v-for="(item, index) in top_writers" :key="index">
                        <div class="top-reco-cent-item-le" v-bind:style="top_colors[index]">
                            {{ index+1 }}
                        </div>
                        <el-tooltip
                            :content=item.name
                            placement="bottom"
                            effect="light"
                           
                        >
                            <top-reco-cent-item class="top-reco-cent-item-rg overtext">
                                <img class="top-reco-title-img" :src="item.avatar">
                                &nbsp;
                                {{ item.name }}
                            </top-reco-cent-item>
                        </el-tooltip>
                    </div>
                </div>
            </div>
            <!-- 推荐内容(文章,专栏,专栏分两类,系统专栏,用户自己创建的专栏) -->
            <div class="reco-body-content">

                <div class="body-content-nav">
                    <el-breadcrumb separator="/">
                    <el-breadcrumb-item :to="{ path: '/' }">推荐</el-breadcrumb-item>
                    <el-breadcrumb-item :to="{ path: '/' }">最新</el-breadcrumb-item>
                    <el-breadcrumb-item>Hlang社区</el-breadcrumb-item>
                    </el-breadcrumb>
                </div>
                <div class="reco-body-content-items">
                        <BlogItem></BlogItem>
                        <BlogItem></BlogItem>
                        <BlogItem></BlogItem>
                        <BlogItem></BlogItem>
                        <BlogItem></BlogItem>
                        <br>
                </div>
            </div>

        </div>
        <!-- 右边的侧边栏 -->
        <div class="right-affix">

            <div class="r-affix-it day">
                <div class="day-left">
                    <div class="day-left-top">
                        <span class="s-p-top">累计点亮</span>
                        &nbsp;
                        <span class="s-p-top-day">127天</span>
                    </div>
                        <span class="s-p-but">点亮在社区的每一天</span>
                </div>

                <div class="day-right">
                    <el-button type="primary" :icon="Check" circle />
                </div>
            </div>

            <!-- 广告走马灯 -->
            <div class="r-affix-it carousel">
    
                <el-carousel :interval="5000" arrow="always">
                <el-carousel-item v-for="item in affix_imgs" :key="item">
                <!-- <h3 text="2xl" justify="center">{{ item }}</h3> -->
                    <div>
                        <img class="img-affix-r" :src="item">
                    </div>
                </el-carousel-item>
                </el-carousel>
            
            </div>



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

<script lang="ts" setup>
import {
  Check,
} from '@element-plus/icons-vue'

import BlogItem from '../components/BlogItem.vue'



const affix_imgs = [
    '../../src/assets/image/affix1.png',
    '../../src/assets/image/affix2.png',
    '../../src/assets/image/affix3.png',

];

const top_colors = [
    "color: rgb(228, 98, 98);",
    "color: rgb(255, 111, 0);",
    "color: rgb(255, 111, 0);"
]

const top_articles = [
    "TypeChat 入门指南",
    "慎重选择~~第四家公司刚刚开我,加入重新找工作大队!!!",
    "禁止别人调试自己的前端页面代码"
]

const top_columns = [
    "【Spring技术体系】技术研究院",
    "JS每日一算法",
    "人工智能周刊"
]

const top_writers = [
    {"avatar":"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg","name":"Huterox1"},
    {"avatar":"https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png","name":"Huterox2"},
    {"avatar":"https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg","name":"Huterox3"},
]

</script>

<style scoped>


.reco-body-content-items{

    margin: 0 auto;
    display: flex;
    flex-direction: column;
    width: 90%;
    gap: 10px;
    display: flex;

}

.bottom_line{
    border-bottom: thick double #32a1ce;
}
.ribbon span {
  font-size: 10px;
  font-weight: bold;
  color: #FFF;
  text-transform: uppercase;
  text-align: center;
  line-height: 20px;
  transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  width: 100px;
  display: block;
  background: #79A70A;
  background: linear-gradient(#F7E652 0%, #F7C94A 100%);
  box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);
  position: absolute;
  top: 15px; right: -13px;
}
.ribbon span::before {
  content: "";
  position: absolute; left: 0px; top: 100%;
  z-index: -1;
  border-left: 3px solid #F7C94A;
  border-right: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #F7C94A;
}
.ribbon span::after {
  content: "";
  position: absolute; right: 0px; top: 100%;
  z-index: -1;
  border-left: 3px solid transparent;
  border-right: 3px solid #F7C94A;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #F7C94A;
}


.body-content-nav{
    padding-top: 20px;
    padding-left: 20px;
    font-size: 30px;
    height: 50px;

}

.overtext{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap
}

.top-reco-cent-item-rg{

    
    cursor: pointer;
    display: flex;
    justify-items: center;
    align-items: center;
    height: 100%;
    width: 80%;
    color: rgb(114, 111, 111);
}
.top-reco-cent-item-rg:hover{
    color: #32a1ce;
}
.top-reco-cent-item-le{

    display: flex;
    justify-items: center;
    align-items: center;
    height: 100%;
    width: 15px;
    font-size: 15px;
    font-weight: 600;

}
.top-reco-cent-item{

    margin-top: 5px;
    display: flex;
    gap: 3px;
    height: 40px;
    width: 100%;


}

.top-reco-title-text{
    text-align: center;
    padding-left: 10px;
}

.top-reco-title-img{
    padding-left: 5px;
    width: 30px;
    height: 30px;
    border-radius: 30px;
    background-color: white;
}

.top-reco-title{

    padding-top: 3px;
    display: flex;
    justify-items: center;
    align-items: center;
    width: 100%;
    height: 35px;
    border-bottom: thick double #32a1ce;
}

.top-reco-div{

    margin-left: 10px;
    display: flex;
    flex-direction: column;
    justify-items: center;
    align-items: center;
    border-radius: 10px;
    width: 30%;
    height: 96%;
    
    border-right: thick double #32a1ce;
    
}


.day-right{
    margin-left: 20px;
}

.carousel{
    border-radius: 10px;
    width: 100%;
    margin: 0 auto;
}

.img-affix-r{
    background-size: cover;
    height: 300px;
    width: 100%;
}

.day-left-top{
    padding-left: 20px;
    width: 150px;
}

.s-p-but{
    padding-left: 20px;
    margin-top: 10px;
    font-size: 12px;
    color: rgb(120, 122, 123);
}
.s-p-top-day{
    font-weight: bolder;
    font-size: 20px;
    color: rgba(4, 88, 244, 0.849);
}
.s-p-top{
    font-weight: bold;
    font-size: 15px;
}
.day{
    
    border-radius: 10px;
    display: flex;
    gap: 20px;
    height: 100px;
    align-items: center;
    justify-items: center;
}

.day:hover{
  margin-top: 2px;
  -webkit-box-shadow: 0px 0px 24px 6px rgb(64, 177, 252);
  -moz-box-shadow: 0px 0px 24px 6px rgb(47, 161, 237);
  box-shadow: 0px 0px 24px 6px rgb(53, 163, 235);
}

.r-affix-it{

    cursor: default;
    width: 100%;
    background-color: white;
}

.top-recommend{

    display: flex;
    align-items: center;
    justify-items: center;
    gap: 10px;
    width: 100%;
    height: 200px;
    border-radius: 10px;
    background-color: white;
}

.reco-body-content{
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    /* align-items: center; */
    justify-items: center;
    gap: 10px;
    width: 100%;
    /* height: 1300px; */
    border-radius: 10px;
    background-color: white;
}

.main{

    border-radius: 10px;
    width: 52%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-items: center;
}

.right-affix{

    gap: 30px;
    padding-top: 20px;
    position: fixed;
    top: 11.5%;
    right: 2.3%;
    border-radius: 10px;
    width: 320px;
    height: 500px;
    /* background-color: white; */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-items: center;
}


.affix-item{

    /* font-family: Georgia; */
    font-weight: 600;
    display: flex;
    justify-items: center;
    align-items: center;
    width: 80%;
    height: 45px;
    text-align: center;
    font-size: 18px;
    color: rgb(75, 73, 73);
    border-radius: 10px;
    padding-left: 15px;
    /* border-bottom: thick double #32a1ce; */
    
}
.affix-item:hover{
    
    background-color: rgb(229, 232, 232);
    color: rgb(43, 115, 230);
}

.left-affix{

    cursor: pointer;
    padding-top: 30px;
    position: fixed;
    top: 13.5%;
    left: 14.5%;
    border-radius: 10px;
    width: 120px;
    height: 500px;
    background-color: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-items: center;
    gap: 10px;
}
.body{
    margin-top: 20px;
    width: 100%;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/845863.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Rust】Rust学习 第五章使用结构体组织相关联的数据

5.1 定义结构体并实例化结构体 定义结构体&#xff0c;需要使用 struct 关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着&#xff0c;在大括号中&#xff0c;定义每一部分数据的名字和类型&#xff0c;我们称为 字段&#xff08;field&…

从进程pid反推获得该进程所属容器

参考链接 https://cloud-atlas.readthedocs.io/zh_CN/latest/docker/debug/get_container_by_pid.html

基于Java+SpringBoot+Vue的生鲜交易系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Idea使用Docker插件实现maven打包自动构建镜像

Docker 开启TCP 服务 vi /lib/systemd/system/docker.service改写以下内容 ExecStart/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock重启服务 #重新加载配置文件 systemctl daemon-reload #重启服务 systemctl restart docker.service此时docker已…

支付模块功能实现(小兔鲜儿)【Vue3】

支付 渲染基础数据 支付页有俩个关键数据&#xff0c;一个是要支付的钱数&#xff0c;一个是倒计时数据&#xff08;超时不支付商品释放&#xff09; 准备接口 import request from /utils/httpexport const getOrderAPI (id) > {return request({url: /member/order/$…

Redis实战案例27-UV统计

1. Redis的HyperLogLog的统计功能 示例&#xff1a; 表明HyperLogLog不管加入重复元素多少次都不会让count&#xff0c;不会计数重复元素&#xff0c;所以适合做UV计数 2. 简单实现UV测试 通过单元测试&#xff0c;向 HyperLogLog 中添加 100 万条数据&#xff0c;看看内存占…

小鼠是否使用分布性RL?DeepMind说是的

DeepMind的研究人员发现了大脑对多巴胺的反应与分布强化学习的趋势AI理论之间的相似之处。这些发现验证了分布强化学习的潜力&#xff0c;并促使DeepMind研究人员自豪地宣称“现在人工智能研究走在正确的道路上”。 在这项新研究中&#xff0c;来自DeepMind和哈佛大学的研究人…

C# 完成串口通信RS485

C# 完成串口通信RS485|RS232上下位机交互 第零步&#xff1a; 我用的是电脑usb 转串口的所以首先是驱动程序下载&#xff0c;我们用的是CH341 下载地址&#xff1a;https://www.wch.cn/downloads/CH341SER_EXE.html 第一步&#xff1a;连接机器 RS485 上面有三个端子&#xf…

LangChain手记 Overview

整理并翻译自DeepLearning.AILangChain的官方课程&#xff1a;Overview 综述&#xff08;Overview&#xff09; LangChain是为大模型应用开发设计的开源框架 LangChain目前提供Python和JavaScript&#xff08;TypeScript&#xff09;两种语言的包 LangChain的主攻方向是聚合和…

若依form中点击重置按钮,select2选中项不会被重置

若依form中点击重置按钮,select2选中项不会被重置问题&#xff0c;下面提供解决办法。 如图所示,点击重置按钮后, 值被重置为初始状态, 而select2仍然选中之前的选项。 解决办法 在 ry-ui.js文件中 625行增加 下边的代码即可 $("#" currentId).find(select).val…

Parquet存储的数据模型以及文件格式

文章目录 数据模型Parquet 的原子类型Parquet 的逻辑类型嵌套编码 Parquet文件格式 本文主要参考文献&#xff1a;Tom White. Hadoop权威指南. 第4版. 清华大学出版社, 2017.pages 363. Aapche Parquet是一种能有效存储嵌套数据的列式存储格式&#xff0c;在Spark中应用较多。 …

【框架篇】MyBatis 介绍及使用(详细教程)

一&#xff0c;MyBatis 介绍 MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff…

亚马逊积极布局金融科技业务,将在巴西推出信用卡服务

据外媒报道&#xff0c;近日亚马逊表示&#xff0c;其将与巴西布拉德斯科银行&#xff08;Banco Bradesco&#xff09;合作&#xff0c;在巴西推出信用卡服务。 Banco Bradesco执行长Octavio de Lazari Junior表示&#xff0c;双方合作的信用卡将于8月8日推出&#xff0c;该卡…

pinctrl_desc函数操作集

pinctrl_desc函数操作集 文章目录 pinctrl_desc函数操作集操作集原型struct pinctrl_opsstruct pinctrl_opsstruct pinconf_ops 操作集原型 pinctrl_desc结构体中包含下列函数操作集 /* 引脚控制操作的虚拟函数表&#xff0c;用于支持引脚分组等全局概念&#xff0c;这是可选的…

分布式异步任务组件(八)

分布式异步任务组件网络通信线程模型设计-- 大概说一下功能场景&#xff1a; 从节点和主节点建立连接&#xff0c;负责和主节点的网络IO通信&#xff0c;通信动作包括投票&#xff0c;心跳&#xff0c;举证等&#xff0c;步骤为读取主节点的信息&#xff0c;写入IO队列中&…

Kotlin基础(十一):反射和注解

前言 本文主要讲解kotlin反射和注解。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 kotlin反射 1.1.1 kotlin反射概念和常见使用场景 在Kotlin中&#xff0c;反射是一种能够在运行时动态地获取、检查和操作类、属性、方法等结构的能力。Kotlin为反射提供了一…

vue新学习 05vue的创建运行原理

01.vue的创建过程 Vue的生命周期是指Vue实例从创建到销毁的整个过程中经历的一系列阶段。Vue的生命周期分为8个阶段&#xff0c;分别是&#xff1a; beforeCreate&#xff08;创建前&#xff09;&#xff1a;在实例初始化之后&#xff0c;数据观测和事件配置之前被调用。此时…

后台管理系统中----菜单的展开和收起

1.下载vuex npm i vuex3.6.2 2.创建文件夹 src/store/index import Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); import tab from "./tab"; export default new Vuex.Store({modules: {tab,}, });注册Vuex并且注册tab模块 来控…

Spring系列三:基于注解配置bean

文章目录 &#x1f497;通过注解配置bean&#x1f35d;基本介绍&#x1f35d;快速入门&#x1f35d;注意事项和细节 &#x1f497;自己实现Spring注解配置Bean机制&#x1f35d;需求说明&#x1f35d;思路分析&#x1f35d;注意事项和细节 &#x1f497;自动装配 Autowired&…

RISC-V基础之内存分布与映射

内存映射是指将地址空间划分为不同的部分或段&#xff0c;每个段有不同的用途和属性。这段话介绍了五个段&#xff1a;文本段、全局数据段、动态数据段、异常处理器段和操作系统&#xff08;OS&#xff09;段。下面是对每个段的简要说明&#xff1a; 文本段&#xff1a;存放程序…