c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

HTML5实现留言和回复的页面样式

江奕云 2023-07-07编程经验
需求分析本需求是实现留言和回复的页面样式。页面需要实现从服务器端下载留言,向服务器端发送留言和回复等基本功能。用户能够方便地留言和回复,留言和回复的内容应当能够实时地展示在页面上。HTML结构设计在设计HTML结构时,我们可以将页面分为

需求分析

本需求是实现留言和回复的页面样式。页面需要实现从服务器端下载留言,向服务器端发送留言和回复等基本功能。用户能够方便地留言和回复,留言和回复的内容应当能够实时地展示在页面上。

HTML结构设计

在设计HTML结构时,我们可以将页面分为两部分:留言板和留言框。其中,留言板用于展示已有的留言和回复,留言框则用于用户输入新的留言或回复。

<div id="留言板">
    <h3>留言板</h3>
    <ul id="留言列表">
        <li>
            <div class="留言信息">
                <span class="留言人">张三</span>
                <span class="留言时间">2022-09-26 16:32:41</span>
            </div>
            <div class="留言内容">
                <p>这是一条留言的内容。</p>
            </div>
            <ul class="回复列表">
                <li>
                    <div class="回复信息">
                        <span class="回复人">李四</span>
                        <span class="回复时间">2022-09-26 16:33:23</span>
                    </div>
                    <div class="回复内容">
                        <p>这是一条回复的内容。</p>
                    </div>
                </li>
            </ul>
        </li>
    </ul>
</div>

<div id="留言框">
    <h3>留言框</h3>
    <form>
        <input type="text" id="留言人" placeholder="请输入您的姓名">
        <textarea id="留言内容" placeholder="请输入您的留言"></textarea>
        <button id="留言提交">提交留言</button>
    </form>
</div>

JavaScript代码实现

JavaScript代码的主要任务是与服务器端进行交互,实现页面的各种功能,包括留言的展示、留言的提交、回复的展示等。

// 从服务器端下载留言
function downloadMessage() {
    $.ajax({
        url: "downloadMessage.php",
        type: "GET",
        dataType: "json",
        success: function(data) {
            for (var i = 0; i < data.length; i++) {
                var message = data[i];
                var li = <li></li>;
                var header = <div class="留言信息"></div>;
                var name = <span class="留言人"></span>;
                var time = <span class="留言时间"></span>;
                var content = <div class="留言内容"><p></p></div>;
                var replyList = <ul class="回复列表"></ul>;
                li.appendTo("#留言列表");
                header.appendTo(li);
                name.text(message.name).appendTo(header);
                time.text(message.time).appendTo(header);
                content.appendTo(li);
                content.find("p").text(message.content);
                replyList.appendTo(li);
                for (var j = 0; j < message.reply.length; j++) {
                    var reply = message.reply[j];
                    var replyLi = <li></li>;
                    var replyHeader = <div class="回复信息"></div>;
                    var replyName = <span class="回复人"></span>;
                    var replyTime = <span class="回复时间"></span>;
                    var replyContent = <div class="回复内容"><p></p></div>;
                    replyLi.appendTo(replyList);
                    replyHeader.appendTo(replyLi);
                    replyName.text(reply.name).appendTo(replyHeader);
                    replyTime.text(reply.time).appendTo(replyHeader);
                    replyContent.appendTo(replyLi);
                    replyContent.find("p").text(reply.content);
                }
            }
        }
    });
}

// 向服务器提交留言
function submitMessage() {
    var name = $("#留言人").val();
    var content = $("#留言内容").val();
    $.ajax({
        url: "submitMessage.php",
        type: "POST",
        data: {"name": name, "content": content},
        success: function() {
            location.reload();
        }
    });
}

// 向服务器提交回复
function submitReply() {
    var name = $(this).closest("li").find(".留言人").text();
    var content = $(this).closest(".回复表单").find("textarea").val();
    $.ajax({
        url: "submitReply.php",
        type: "POST",
        data: {"name": name, "content": content},
        success: function() {
            location.reload();
        }
    });
}

$(function() {
    downloadMessage();
    $("#留言提交").click(function() {
        submitMessage();
        return false;
    });
    $(document).on("click", ".回复按钮", function() {
        $(this).after("<div class='回复表单'><textarea></textarea><button class='回复提交'>提交回复</button></div>");
        $(this).parent().find(".回复表单").find(".回复提交").click(submitReply);
    });
});

CSS样式设计

CSS的主要作用是美化页面,优化用户体验。对于留言板和留言框,在CSS设计时需要注重排版和颜色、字体的搭配,保证整个页面的风格统一、简洁美观。

#留言板 {
    width: 800px;
    margin: 20px auto;
}
#留言板 h3 {
    font-size: 24px;
    text-align: center;
}
#留言列表 {
    list-style: none;
    padding: 0;
}
.留言信息 {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}
.留言人 {
    font-weight: bold;
    color: #333;
    margin-right: 10px;
}
.留言时间 {
    color: #999;
}
.留言内容 p {
    margin: 0;
    padding: 10px;
    background-color: #f5f5f5;
    border-radius: 5px;
}
.回复列表 {
    margin-left: 20px;
    list-style: none;
}

#留言框 {
    width: 800px;
    margin: 20px auto;
}
#留言框 h3 {
    font-size: 24px;
    text-align: center;
}
#留言框 form {
    display: flex;
    flex-direction: column;
}
#留言框 input[type="text"], #留言框 textarea {
    font-size: 16px;
    padding: 10px;
    margin-bottom: 10px;
    border: none;
    border-radius: 5px;
}
#留言框 textarea {
    height: 100px;
}
#留言框 button {
    font-size: 16px;
    padding: 10px;
    background-color: #4169E1;
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}
.回复表单 textarea {
    margin-bottom: 10px;
}

文章评论