【蓝桥杯Web】第十三届蓝桥杯(Web 应用开发)线上模拟赛

前言

本章主要为大家讲解第十三届蓝桥杯(Web 应用开发)线上模拟赛的题目,接着往下看吧👇👇👇

文章目录

目录

前言

文章目录

第一题:修复网站显示问题

第二题:修复注册验证问题

第三题:封装函数实现个人所得税计算器

第四题:Flex 经典骰子布局

第五题:制作网站首页

第六题:响应式 Gulp 中文网

第七题:天气预报查询

第八题:实现卡号绑定功能

第九题:知乎首页数据动态化

第十题:RESTful API 开发

结语


第一题:修复网站显示问题

题目要求:

解题思路:

这个题目出现好几次了,我感觉正式比赛是肯定不会考的,妥妥送分。很明显css没响应。所以去找css。发现css引入的时候名字写错了。

我的答案:

    <link href="css/index.css" rel="stylesheet" type="text/css">

第二题:修复注册验证问题

题目要求:

解题思路:

这题主要考的是正则表达式,使用正则表达式的test(),检测一个字符串是否匹配某个模式。

对于正则表达式的匹配规则还有疑问的,可以看一下我写的这篇文章:(3条消息) 【JavaScript】声网编程竞赛7月专场_JBQ.627号的博客-优快云博客icon-default.png?t=N2N8https://blog.youkuaiyun.com/qq_62837899/article/details/129722109?spm=1001.2014.3001.5501

我的答案:

  // 186  134-139  150-152
  function isPhone(phoneNumber) {
     return /^(186|13[4-9]|15[0-2])\d{8}$/.test(phoneNumber)
  }

第三题:封装函数实现个人所得税计算器

题目要求:

解题思路:

这题是最最基础的if……else if……else的题了,没什么技巧,就按给出的条件写。

我的答案:

function cal(salary) {
    // TODO: 在此处补充代码
    if(salary<5000){
        return 0;
    }else if(salary<=9000){
        return (salary-5000)*0.03
    }else if(salary<=15000){
        return (salary-5000)*0.05
    }else{
        return (salary-5000)*0.1
    }
   
}
module.exports = cal; //请勿删除

第四题:Flex 经典骰子布局

题目要求:

解题思路:

这题主要考的是flex布局,学习里面属性的时候最好自己去敲一敲,就懂这个东西到底如何使用咋玩了。不懂的可以去看一下阮一峰老师写的的这篇文章,写的很细致:Flex 布局教程:语法篇 - 阮一峰的网络日志 (ruanyifeng.com)icon-default.png?t=N2N8https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

我的答案:


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>骰子布局</title>
    <style>
        body {
            margin: 10px 0 0 0;
            display: flex;
            justify-content: space-around;
        }
        
        body>div {
            display: flex;
            width: 100px;
            height: 100px;
            border-radius: 4px;
            border: 2px solid red;
            box-sizing: border-box;
        }
        
        p {
            width: 15px;
            height: 15px;
            background-color: black;
            border-radius: 50%;
            margin: 2px;
        }
        
        .div1 {
            justify-content: center;
            align-items: center;
        }
        /*todo:请补全剩余骰子布局代码*/
        .div2{
            display: flex;
            flex-direction: column;
            justify-content: space-around;
            align-items: center;
        }
        .div3{
            display: flex;
            justify-content: space-between;
        }
        .div3>p:nth-child(2){
            display: flex;
            align-self: center;
        }
        .div3>p:nth-child(3){
            display: flex;
            align-self: end;
        }
        .div4{
            display: flex;
            justify-content: space-around;
        }
        .div4>div{
            display: flex;
            flex-direction: column;
            justify-content:space-around;
        }
        .div5{
            display: flex;
            justify-content: space-around;
        }
        .div5>div{
            display: flex;
            flex-direction: column;
            justify-content:space-around;
        }
        .div6{
            display: flex;
            flex-direction: column;
            justify-content: space-around;
        }
        .div6>div{
            display: flex;
            justify-content: space-around;
        }
        .div7{
            display: flex;
            flex-direction: column;
            justify-content: space-around;
        }
        .div7>div{
            display: flex;
            justify-content:space-around;
        }
        .div8{
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .div8>div{
            display: flex;
            justify-content:space-between;
        }
        .div9{
            display: flex;
            justify-content: space-around;
        }
        .div9>div{
            display: flex;
            flex-direction: column;
            justify-content: space-around;
        }
    </style>
</head>

<body>
    <!--骰子1-->
    <div class="div1">
        <p></p>
    </div>
    <!--骰子2-->
    <div class="div2">
        <p></p>
        <p></p>
    </div>
    <!--骰子3-->
    <div class="div3">
        <p></p>
        <p></p>
        <p></p>
    </div>
    <!--骰子4-->
    <div class="div4">
        <div>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
        </div>
    </div>
    <!--骰子5-->
    <div class="div5">
        <div>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
        </div>
    </div>
    <!--骰子6-->
    <div class="div6">
        <div>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
        </div>
    </div>
    <!--骰子7-->
    <div class="div7">
        <div>
            <p></p>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
            <p></p>
        </div>
    </div>
    <!--骰子8-->
    <div class="div8">
        <div>
            <p></p>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
            <p></p>
        </div>
    </div>
    <!--骰子9-->
    <div class="div9">
        <div>
            <p></p>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
            <p></p>
        </div>
        <div>
            <p></p>
            <p></p>
            <p></p>
        </div>
    </div>
</body>

</html>

第五题:制作网站首页

题目要求:

解题思路:比较好的是里面结构都写好了但是有小部分需要改(比如nav的logo),只需要写css部分。每个人写法都不同,仅供参考。

我的答案:


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <title>知乎日报 - 每天 3 次,每次 7 分钟</title>
    <link href="css/style.css" rel="stylesheet" />
  </head>

  <body id="body">
    <!--header start-->
    <header class="headerbox">
      <!--nav start-->
      <nav class="navbox">
        <h1><img src="./images/logo.png" alt=""></h1>
        <div class="navright">
          <a class="on" href="#body">app下载</a>
          <a href="#tabtitle">浏览内容</a>
        </div>
      </nav>
      <!--nav end-->
    </header>
    <!--header end-->
    <!--banner start-->
    <section class="banner">
      <div class="container">
        <div class="container-img">
          <img
            src="images/phone_sample.png"
            alt="知乎日报应用截屏"
            class="phoneimg loaded"
          />
        </div>
        <div class="content">
          <h2>每天三次 每次七分钟</h2>
          <div class="info">
            在中国,资讯类移动应用的人均阅读时长是 5
            分钟,而在知乎日报,这个数字是 21。
          </div>
        </div>
      </div>
    </section>
    <!--banner end-->
    <!--tabtitle start-->
    <section class="tabtitle" id="tabtitle">
      <h3>浏览内容</h3>
      <h4>最新内容</h4>
    </section>
    <!--tabtitle end-->
    <!--list start-->
    <section class="list">
      <ul>
        <li>
          <a href="#">
            <img src="images/1.jpg" alt="" />
            <p>怎样使金属变得很脆?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/2.jpg" alt="" />
            <p>有哪些对你很有冲击力的设计?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/3.jpg" alt="" />
            <p>有哪些很重要,教练却没有教的驾驶技巧?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/5.jpg" alt="" />
            <p>谢谢天上掉的玩具</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/6.jpg" alt="" />
            <p>火车上的「最大上沙量」标识是什么意思?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/7.jpg" alt="" />
            <p>翼龙可以当飞行坐骑么?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/1.jpg" alt="" />
            <p>怎样使金属变得很脆?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/2.jpg" alt="" />
            <p>有哪些对你很有冲击力的设计?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/3.jpg" alt="" />
            <p>有哪些很重要,教练却没有教的驾驶技巧?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/5.jpg" alt="" />
            <p>谢谢天上掉的玩具</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/6.jpg" alt="" />
            <p>火车上的「最大上沙量」标识是什么意思?</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="images/7.jpg" alt="" />
            <p>翼龙可以当飞行坐骑么?</p>
          </a>
        </li>
      </ul>
      <div style="clear: both;"></div>
      <div class="more">
        <a href="#">更多精彩内容请在APP中查看</a>
      </div>
    </section>
    <!--list end-->
    <!--footer start-->
    <footer class="footer">
      <div class="footerBox">
        <div class="footerL">
          <p>
            知乎日报是一款拥有千万用户的资讯类客户端,每日提供来自知乎社区的精选问答,还有国内一流媒体的专栏特稿。
          </p>
          <p>
            主题日报包括动漫、设计、大公司、游戏、财经、电影、电子音乐、互联网安全等丰富内容,为业内人和资深爱好
            者推荐各领域最精彩文章,满足高质量阅读需求。
          </p>
          <p>在知乎日报,告别浮躁,重获阅读的愉悦。</p>
          <p>© 2020 知乎</p>
        </div>
        <div class="footerR">
          <img src="images/qr.png" alt="" />
          <p>扫描下载客户端</p>
        </div>
      </div>
    </footer>
    <!--footer end-->
  </body>
</html>
*{
    margin: 0;
    padding: 0;
}

li{
    /*去除默认小圆点*/
    list-style: none;
}

a{
    /* 去除默认的下划线 */
    text-decoration: none;
    color: black;
}

/* nav */
.headerbox{
    position: relative;
    width: 1024px;
    height: 78px;
    margin: 0 auto;
}

.navbox>h1{
    position: absolute;
    float: left;
    margin-left: 30px;
    top: 50%;
    transform: translate(0,-50%);
}

.navbox>div{
    position: absolute;
    right: 0;
    top: 50%;
    transform: translate(0,-50%);
}

.navright>a{
    float: left;
    width: 120px;
    height: 32px;
    line-height: 32px;
    text-align: center;
    
}

.navright>a:nth-child(1){
    color: #0099f2;
    background-color: #F0F9FF;
}

/* banner */
.banner{
    position: relative;
    width: 1024px;
    height: 100%;
    background-color: #008BED;
    margin: 0 auto;
}

.container-img{
    margin-left: 30px;
}

.content{
    position:absolute;
    top: 50%;
    right: 60px;
    transform: translate(0,-50%);
}

.content>h2{
    font-size: 40px;
    line-height: 40px;
    color: #fdfdfd;
}

.info{
    width: 410px;
    font-size: 16px;
    line-height: 26px;
    color: #99d1f8;
}

/* tabtitle */
.tabtitle{
    position: relative;
    width: 960px;
    height: 100px;
    margin: 0 auto;
    padding: 0 30px;
    background-color: #f9f9f9;
}

.tabtitle>h3{
    position:absolute;
    font-size: 24px;
    top: 50%;
    transform: translate(0,-50%);
}

.tabtitle>h4{
    position:absolute;
    font-size: 24px;
    color: #ccc;
    right: 30px;
    top: 50%;
    transform: translate(0,-50%);
}


/* list  */
.list{
    width: 1024px;
    height: 100%;
    background-color: #f9f9f9;
    margin: 0 auto;
    padding-bottom: 30px;
}

.list>ul>li{
    float: left;
    width: 300px;
    height: 374px;
    margin-left: 30px;
    margin-bottom: 20px;
    background-color: white;
}

.list>ul>li>a>img{
    width: 260px;
    height: 260px;
    margin: 20px 20px;
}

.list>ul>li>a>p{
    color: #333;
    margin: 0 20px;
}

.more{
    width: 960px;
    text-align: center;
    background-color: #e8eef2;
    margin: 0 auto;
}

.more>a{
    font-size: 20px;
    line-height: 62px;
    color: #59abdf;
}

/* footer */
.footer{
    width: 1024px;
    height: 224px;
    background-color: #e5e5e5;
    margin: 0 auto;
}

.footerBox{
    margin: 0 30px;
    padding-top: 32px;
}

.footerL{
    float: left;
    width: 710px;
    height: 210px;
}

.footerL>p{
    margin-bottom: 15px;
}

.footerR{
    float: right;
    width: 141px;
    height: 152px;
    text-align: center;
}

第六题:响应式 Gulp 中文网

题目要求:

解题思路:这题也在之前的文章中写过了,就不再写一遍了,直接放答案了。

<style media="screen"> 
@media screen and (max-width:1400px) {
            nav .content,
            main section {
                width: 900px;
            }
        }

        @media screen and (max-width:900px) {
            nav .content,
            main section {
                width: 700px;
            }
        }

        @media screen and (max-width:650px) {
            nav .content .list{
                display: none;
            }
            main ul li{
                width: 100%;
            }
            main ul li:nth-child(even) {
                margin-left: 0;
            }
        }
<style>

第七题:天气预报查询

题目要求:

解题思路:

这道题答案可以有很多,每个人想的不一样,写的也就不一样。可以写的很短,也可以写的很长。这道题主要考察的是jq的基础用法,也可以用js写。

逻辑比较简单,就是使用ajax获取数据,然后将对应的数据设置给对应元素的文本内容。

js中的 $.each(),方法是用于遍历的。

jq中的 text() 方法,用于设置或返回被选元素的文本内容。

我的答案:

function getweather() {
     //TODO:请补充代码
     $.ajax({
        url:'js/weather.json',
        type:'get',
        success:function(res){
            var result=res.result;
            $.each(result,function(index,e){
 $(`.item:eq(${index})>img`).attr('src',e.weather_icon)
                $(`.item-mess:eq(${index})>div:eq(0)`).text(e.weather)
                $(`.item-mess:eq(${index})>div:eq(1)`).text(e.temperature)
                $(`.item-mess:eq(${index})>div:eq(2)`).text(e.winp)
                $(`.item-mess:eq(${index})>div:eq(3)>span:eq(0)`).text(e.days)
                $(`.item-mess:eq(${index})>div:eq(3)>span:eq(1)`).text(e.week)
            })
        }
     })
}

getweather();

第八题:实现卡号绑定功能

题目要求:

解题思路:

这道题也和之前的一道题差不多,不同的是他这里面使用了bootstrap中的class,反正思路是一样。没思路的伙伴可以看看这篇文章:

(3条消息) 【Web前端】楼赛 第27期_JBQ.627号的博客-优快云博客icon-default.png?t=N2N8https://blog.youkuaiyun.com/qq_62837899/article/details/129835078?spm=1001.2014.3001.5501

我的答案:

function bind(cardno, password) {
    //Todo:补充代码
    var cardnolist=[]
    var count=0
    $.ajax({
        url:"js/cardnolist.json",
        success:res=>{
            cardnolist=res.cardnolist
            cardnolist.forEach(element => {
                if(cardno===element.cardno&&password===element.password){
                    $('#tip1').attr('class',"alert alert-primary alert-dismissible show")
                    $('#tip2').attr('class',"alert alert-warning alert-dismissible fade")
                    return
                }else{
                    count++
                }
            });
            if(count===cardnolist.length){
                $('#tip1').attr('class',"alert alert-primary alert-dismissible fade")
                $('#tip2').attr('class',"alert alert-warning alert-dismissible show")
            }
        }
    })
}

第九题:知乎首页数据动态化

题目要求:

解题思路:

主要是考vue的数据动态展示。首先发请求得到数据存放在data中然后使用v-for动态展示到页面上去。

我的答案:

<template>
  <div class="list">
    <div class="list-item" v-for="(info) in lists" :key="info.id">
      <img class='list-pic' :src='info.imgUrl'/>
      <div class="list-info">
        <p class='title'>{{info.title}}</p>
        <p class='desc'>{{info.desc}}</p>
      </div>
    </div>
  </div>
</template>

<script>
import axios from 'axios'
export default {
  data() {
    return {
      lists:[]
    };
  },
  mounted(){
    axios.get('../static/data/list.json').then(res=>{
      this.lists=res.data.data.listInfo
    })
  }
};
</script>

第十题:RESTful API 开发

题目要求:

我的答案:

//TODO:请补全获取用户列表代码
app.get('/list', function(req, res) {
    fs.readFile(path.resolve(__dirname,'./users.json'), 'utf8', function(err, data) {
        data = JSON.parse(data);
        res.json(data);
    });
})

结语

我发现上一届的题目普遍都比较的简单,所以写的有些潦草(哪里写的有问题的,请各位大佬帮忙及时指出)。但是很明显上一届真的很简单,不像这一届(14届)的模拟题,有很多处理数据的题目,能感受到/(ㄒoㄒ)/~~难度明显上升了,特别是第十四届蓝桥杯(Web 应用开发)模拟赛 3 期-职业院校组里的页面布局真的很变态,还有分页组件那题。但愿正式比赛不要出不然真来不急。最后,祝各位能取得满意的成绩💪💪💪

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值