【简单的留言墙】HTML+CSS+JavaScript

这篇具有很好参考价值的文章主要介绍了【简单的留言墙】HTML+CSS+JavaScript。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

                                                           目标:做一个简单的留言墙

                                        【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

1.首先我们用HTML的一些标签,初步构造区域 样式。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>留言墙</title>
    <style>
        /* ...... */ 
    <style>
</head>
<body>

    <h1>留言墙</h1>
    <p>输入内容后,点击提交即可</p>

    <div>
        <span>谁:</span>
        <input type="text">
    </div>
    <div>
        <span>对谁:</span>
        <input type="text">
    </div>
    <div>
        <span>说:</span>
        <input type="text">
    </div>
    <div>
        <button>提交</button>
    </div>
    <div>
        <button>撤销</button>
    </div>


</body>
</html>

                                                                              【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

2.上面操作已经初步完成布局,接下来在style标签中书写CSS代码,利用各种选择器设置。使文字居中,并且改变文字颜色。

<style>
        /* 各种选择器 类选择器 ID选择器 伪类选择器 后代选择器 子选择器 并集选择器 */

        h1 {
            /* 使h1标签中的文字样式居中 */
            text-align: center;
        }

        p {
            /* 使p标签中的文字样式居中 */
            text-align: center;
            /* 改变文字颜色 */
            color: darkgray;
        }

</style>

【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

3.文字已经居中,但是下面的输入框,按钮等还没居中,由于他们都被设置在div标签中,接下来可以对所有在div标签中的属性使用弹性布局设置这些元素的水平排列方式

<style>
        h1 {
            /* 使h1标签中的文字样式居中 */
            text-align: center;
        }

        p {
            /* 使p标签中的文字样式居中 */
            text-align: center;
            color: darkgray;
        }

        div {
            /* 开启弹性布局 */
            display: flex;
            /* 设置元素水平方向排列问题 居中排列 */
            justify-content: center;
            /* 设置每个div标签中元素外边框距离 即元素与元素之间的距离 */
            /* 15px auto 意思为 该元素的上下外边框为15像素 左右自适应排布 */
            margin: 15px auto;
        }


    </style>

 【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

4.位置居中问题已经解决,但是会发现输入框及文字排列还并不整齐。这是因为我们并未对span标签里的文字及input标签设置各自宽度及高度,一旦设置就会各自居左排布。

<style>

        h1 {
            /* 使h1标签中的文字样式居中 */
            text-align: center;
        }

        p {
            /* 使p标签中的文字样式居中 */
            text-align: center;
            color: darkgray;
        }

        div {
            /* 开启弹性布局 */
            display: flex;
            /* 设置元素水平方向排列问题 居中排列 */
            justify-content: center;
            /* 设置每个div标签中元素外边框距离 即元素与元素之间的距离 */
            /* 15px auto 意思为 该元素的上下外边框为15像素 左右自适应排布 */
            margin: 15px auto;
        }

        span {
            /* 设置宽度 */
            width: 100px;
            /* 设置高度 */
            height: 25px;
        }

        input {
            /* 宽度 */
            width: 200px;
            height: 25px;
        }
        
</style>

      【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

5. 设置button按钮的宽度,文字颜色,按钮颜色

<style>
        h1 {
            /* 使h1标签中的文字样式居中 */
            text-align: center;
        }

        p {
            /* 使p标签中的文字样式居中 */
            text-align: center;
            color: darkgray;
        }

        div {
            /* 开启弹性布局 */
            display: flex;
            /* 设置元素水平方向排列问题 居中排列 */
            justify-content: center;
            /* 设置每个div标签中元素外边框距离 即元素与元素之间的距离 */
            /* 15px auto 意思为 该元素的上下外边框为15像素 左右自适应排布 */
            margin: 15px auto;
        }

        span {
            /* 设置宽度 */
            width: 100px;
            /* 设置高度 */
            height: 25px;
        }

        input {
            /* 宽度 */
            width: 200px;
            height: 25px;
        }

        button {
            /* 文字颜色 */
            color: white;

            /* 背景颜色 */
            background-color: orange;

            /* 按钮宽度 */
            width: 300px;

            /* 边框颜色 去掉黑边框 */
            border: none;

            /* 设置按钮高度 */
            height: 30px;
        }

    </style>

      【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript 

 6.基本布局已经完成,但还存在几个问题

6.1 点击按钮无反应,使用伪类选择器进行设置

<style>
        h1 {
            /* 使h1标签中的文字样式居中 */
            text-align: center;
        }

        p {
            /* 使p标签中的文字样式居中 */
            text-align: center;
            color: darkgray;
        }

        div {
            /* 开启弹性布局 */
            display: flex;
            /* 设置元素水平方向排列问题 居中排列 */
            justify-content: center;
            /* 设置每个div标签中元素外边框距离 即元素与元素之间的距离 */
            /* 15px auto 意思为 该元素的上下外边框为15像素 左右自适应排布 */
            margin: 15px auto;
        }

        span {
            /* 设置宽度 */
            width: 100px;
            /* 设置高度 */
            height: 25px;
        }

        input {
            /* 宽度 */
            width: 200px;
            height: 25px;
        }

        button {
            /* 文字颜色 */
            color: white;

            /* 背景颜色 */
            background-color: orange;

            /* 按钮宽度 */
            width: 300px;

            /* 边框颜色 去掉黑边框 */
            border: none;

            /* 设置按钮高度 */
            height: 30px;
        }

        /* 伪类选择器 设置按钮按下时的变化 */
        button:active {
            background-color: darkorange;
        }

    </style>

6.2.输入框有黑边框问题 还有光标显示位置太靠左。

【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

以下代码有所省略,突出了重点,还是利用CSS选择器设置属性。

input {
            /* 宽度 */
            width: 200px;
            /* 设置高度 */
            height: 25px;
            /* 消除输入框黑框 */
            outline: none;
            /* 光标位置 */
            padding-left: 5px ;
        }

【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

6.3.通过网页中的检查查看发现我们所设置的输入框元素的宽度应该是30px,而这里却显示29.91px,显然有问题。原因是与浏览器的自动设置有关,为防止这些细节出错,最好再加上一段代码。

【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

/* *通配符 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

 最终宽度成功设置为25。

【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

6.4.设置高度,使整体高居中度。

        h1 {
            /* 使h1标签中的文字样式居中 */
            text-align: center;
            /* 设置外边框 上为100高度 下为20高度 左右自适应 */
            margin: 100px 20px auto;
        }

        p {
            /* 使p标签中的文字样式居中 */
            text-align: center;
            color: darkgray;
            /* 设置外边框 */
            /* 设置外边框 上为20高度 下为20高度 左右自适应 */
            margin: 20px 20px auto;
        }

6.5.设置背景图片,及整体高度 宽度 100% 即跟随浏览器大小的变化而变化。

html body {
            width: 100%;
            background-image: url("背景.png");
            /* 图片全覆盖且不重复 */
            background-repeat: no-repeat;
            background-size: cover;
            height: 100%;
        }

【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript

7. 接下来用到 JavaScript 进行行为交互。

 <script>
        //querySelector('选择器字符串')  api
        //获取选择器元素
        let body = document.querySelector('body');
        //获取input选择器元素
        let inputs = document.querySelectorAll('input');
        //获取提交选择器元素
        let submit = document.querySelector('#submit');

        //点击提交操作
        submit.onclick = function () {

            //获取输入框里的信息
            let a = inputs[0].value;
            let b = inputs[1].value;
            let c = inputs[2].value;

            //三个输入框右空时,
            if(a=='' || b=='' || c=='') {
                //提示内容不能为空
                alert("内容不能为空");
                return;
            }

            /* 构造新的div 即目的是将留言设置在新的构造的div标签中,并加入到目前页面中呈现*/
            let newDiv = document.createElement('div');

            //为新构造的div标签起个类名
            newDiv.className = 'rows';

            //获取时间
            let myDate = new Date();
            let myTime=myDate.toLocaleString( );

            //设置新构造的div标签的内容
            newDiv.innerHTML = a + '对' + b + '说' + c +'  '+ myTime;

            //将新的div标签加入到当前页面HTML中
            body.appendChild(newDiv);

            //提交成功后输入框清空效果
            for(let input of inputs) {
                input.value = '';
            }

            //撤销按钮 为了区分两个按钮元素 可以设置类名或ID名 再写类选择器 或 ID选择器 再调用
            //获取撤销选择器元素  #revoke ID选择器
            let revoke = document.querySelector('#revoke');

            //点击撤销后的动作
            revoke.onclick = function () {
                //获取所有新添加的DIV,因为上面设置了类名,所以这里获取类名
                let rev = document.querySelectorAll('.rows');
                if(rev==null || rev.length==0) {
                    return;
                }
                //删除最新添加的div
                body.removeChild(rev[rev.length-1]);
            }

        }

    </script>

8.完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>留言墙</title>
    <style>
        /* 各种选择器 类选择器 ID选择器 伪类选择器 后代选择器 子选择器 并集选择器 */
        html body {
            width: 100%;
            background-image: url("背景.png");
            background-repeat: no-repeat;
            background-size: cover;
            height: 100%;
        }

        /* *通配符 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        h1 {
            /* 使h1标签中的文字样式居中 */
            text-align: center;
            /* 设置外边框 上为100高度 下为20高度 左右自适应 */
            margin: 100px 20px auto;
        }

        p {
            /* 使p标签中的文字样式居中 */
            text-align: center;
            color: darkgray;
            /* 设置外边框 */
            /* 设置外边框 上为20高度 下为20高度 左右自适应 */
            margin: 20px 20px auto;
        }

        div {
            /* 开启弹性布局 */
            display: flex;
            /* 设置元素水平方向排列问题 居中排列 */
            justify-content: center;
            /* 设置每个div标签中元素外边框距离 即元素与元素之间的距离 */
            /* 15px auto 意思为 该元素的上下外边框为15像素 左右自适应排布 */
            margin: 15px auto;
        }

        span {
            /* 设置宽度 */
            width: 100px;
            /* 设置高度 */
            height: 25px;
        }

        input {
            /* 宽度 */
            width: 200px;
            /* 设置高度 */
            height: 25px;
            /* 消除输入框黑框 */
            outline: none;
            /* 光标位置 */
            padding-left: 5px ;
        }

        button {
            /* 文字颜色 */
            color: white;

            /* 背景颜色 */
            background-color: orange;

            /* 按钮宽度 */
            width: 300px;

            /* 边框颜色 去掉黑边框 */
            border: none;

            /* 设置按钮高度 */
            height: 30px;
        }

        /* 伪类选择器 设置按钮按下时的变化 */
        button:active {
            background-color: darkorange;
        }

    </style>
</head>
<body>

    <h1>留言墙</h1>
    <p>输入内容后,点击提交即可</p>

    <div>
        <span>谁:</span>
        <input type="text">
    </div>
    <div>
        <span>对谁:</span>
        <input type="text">
    </div>
    <div>
        <span>说:</span>
        <input type="text">
    </div>
    <div>
        <button id="submit">提交</button>
    </div>
    <div>
        <button id="revoke">撤销</button>
    </div>

    <script>
        //querySelector('选择器字符串')  api
        //获取选择器元素
        let body = document.querySelector('body');
        //获取input选择器元素
        let inputs = document.querySelectorAll('input');
        //获取提交选择器元素
        let submit = document.querySelector('#submit');

        //点击提交操作
        submit.onclick = function () {

            //获取输入框里的信息
            let a = inputs[0].value;
            let b = inputs[1].value;
            let c = inputs[2].value;

            //三个输入框右空时,
            if(a=='' || b=='' || c=='') {
                //提示内容不能为空
                alert("内容不能为空");
                return;
            }

            /* 构造新的div 即目的是将留言设置在新的构造的div标签中,并加入到目前页面中呈现*/
            let newDiv = document.createElement('div');

            //为新构造的div标签起个类名
            newDiv.className = 'rows';

            //获取时间
            let myDate = new Date();
            let myTime=myDate.toLocaleString( );

            //设置新构造的div标签的内容
            newDiv.innerHTML = a + '对' + b + '说' + c +'  '+ myTime;

            //将新的div标签加入到当前页面HTML中
            body.appendChild(newDiv);

            //提交成功后输入框清空效果
            for(let input of inputs) {
                input.value = '';
            }

            //撤销按钮 为了区分两个按钮元素 可以设置类名或ID名 再写类选择器 或 ID选择器 再调用
            //获取撤销选择器元素  #revoke ID选择器
            let revoke = document.querySelector('#revoke');

            //点击撤销后的动作
            revoke.onclick = function () {
                //获取所有新添加的DIV,因为上面设置了类名,所以这里获取类名
                let rev = document.querySelectorAll('.rows');
                if(rev==null || rev.length==0) {
                    return;
                }
                //删除最新添加的div
                body.removeChild(rev[rev.length-1]);
            }

        }

    </script>



</body>
</html>

   【简单的留言墙】HTML+CSS+JavaScript,Java Web,习题总结,html,css,JavaScript                                           文章来源地址https://www.toymoban.com/news/detail-727468.html

到了这里,关于【简单的留言墙】HTML+CSS+JavaScript的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 HTML、CSS 和 JavaScript 创建实时 Web 编辑器

    在本文中,我们将创建一个实时网页编辑器。这是一个 Web 应用程序,允许我们在网页上编写 HTML 、 CSS 和 JavaScript 代码并实时查看结果。这是学习 Web 开发和测试代码片段的绝佳工具。我们将使用 iframe 元素来显示结果。 iframe 元素用于在当前 HTML 文档中嵌入另一个文档。 i

    2024年02月12日
    浏览(38)
  • dede首页调用留言本标题的方法总结

    第一种方法:用feedback标签直接调用。 代码如下: [field:username function=\\\"(@me==\\\'guest\\\' ? \\\'游客\\\' : @me)\\\"/] 评论 [field:title/] [field:msg/] {/dede:feedback} 第二种方法:利用织梦的loop标签或SQL标签。 要调用这个标签,我们在这之前,应该事先了解,留言本模块的数据表为#@_guestbook !换成SQL标

    2024年02月03日
    浏览(34)
  • [HTML]Web前端开发技术26(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 数据类型 数据类型-字符型 数据类型-数值型 数据类型-布尔型 数据类型-其它类型 变量 转义字符 运算

    2024年02月20日
    浏览(53)
  • [HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 CSS的定位机制 文档流定位 元素类型   浮动定位 float的用处 float的特点 clear属性 层定位 position属性

    2024年02月05日
    浏览(52)
  • 大二Web课程设计——美食网站设计与实现(HTML+CSS+JavaScript)

    👨‍🎓静态网站的编写主要是用HTML DIV+CSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的前端Html5代码都是一致的,本网页适合修改成为各种类型的产品展示网页,比

    2024年02月06日
    浏览(38)
  • 零基础学前端(二)用简单案例去理解 HTML 、CSS 、JavaScript 概念

    该篇适用于从零基础学习前端的小白 初学者不懂代码得含义也要坚持模仿逐行敲代码,以身体感悟带动头脑去理解新知识 HTML,CSS,JavaScript 都是单独的语言;他们构成前端技术基础; (1)HTML:负责网页的架构; (2)CSS:负责网页的样式,美化; (3)JavaScript(JS):负责

    2024年02月08日
    浏览(39)
  • [HTML]Web前端开发技术9(HTML5、CSS3、JavaScript )——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 CSS颜色与背景 颜色color属性 背景background属性 1. 背景颜色background-color 2. 背景图像background-image 3. 背景

    2024年02月03日
    浏览(61)
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 网页标题:三列自适应宽度 网页标题:多行三列自适应宽度 一级水平导航菜单:采用“无序列表+超

    2024年01月16日
    浏览(58)
  • 【大学生期末大作业】HTML+CSS+JavaScript — 模仿博客网站设计(Web)

    目录 你为什么不亲自下船, 就一次也好啊, 亲眼去看看这个世界。 关于HTML5: 关于CSS: 关于JavaScript: 一、🌎前言: 二、🔖网页描述 三、📚网站介绍 四、💠网站演示 📜登陆页面设计 📜注册页面设计 📜首页页面设计 📜CSDN跳转设计 📜评论页面设计 📜 动态页面设

    2024年01月24日
    浏览(53)
  • web前端期末大作业:网站设计与实现——咖啡网站HTML+CSS+JavaScript

    🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包