tiny如何保留html样式,小白必知HTML+CSS编写规范

一、文档规范

1.HTML和CSS文档必须采用UTF-8(不包括Unicode签名BOM)编码格式;

2.HTML和CSS文档换行符必须采用UNIX/LINUX的换行编码LF(/n);

3.HTML文档必须使用HTML5的标准文档格式;

二、编写规范

1.HTML和CSS的标签、属性、类名、ID都必须使用小写字母;

2.HTML和CSS的属性、类名、ID命名必须具有语义化;

3.HTML代码必须保持文档结构清晰,必须合理的进行代码缩进;

4.CSS文件禁止样式表内引用CSS文件;

5.CSS编写格式,样式代码保持一行,多个选择器同一个规则必须换行,如图1;

6.CSS样式表格分为3个级别:系统级(以lib开头)、模块级(以m开头)、页面级(以p开头);

7.修改系统级和模块级的文件必须经过前端主管审批;

8.模块级的样式必须以“m”开头,例如头部模块应该命名为:mheader;

9.一个模块一个或多个CSS文件,禁止两个或以上模块使用同一个CSS文件;

10.页面级的样式必须以“p”开头、或者外层以p开头,例如:p_goodslist、p_goodslist .name;

11.页面级的样式如因特殊原因需要针对这个页面进行对模块级的样式进行重置的时候,须将重置样式写在最顶部;

12.除系统级文件外,禁止其他页面级和模块级的CSS文件进行系统的样式重置操作,模块级和页面级也禁止直接重置系统级的样式;

13.ID命名规则:如果用于JS操作需添加”js”前缀,如果用于CSS需依据CLASS的命名规则(不建议用ID做样式选择),如果用于模板操作需添加”tpl_”前缀;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tinyxml2是一个轻量级的XML解析库,不能直接处理HTML文档。但可以通过其他的库,如libxml2来处理HTML文档,然后使用Tinyxml2来解析和处理解析后的文本内容。 下面给出一个获取HTML文本内容的示例代码: ```c++ #include <iostream> #include <fstream> #include <string> #include <libxml/HTMLparser.h> #include "tinyxml2.h" using namespace std; using namespace tinyxml2; void parseHtml(xmlNode *node, XMLDocument& doc); int main() { // 读取HTML文件 string htmlFilePath = "example.html"; ifstream htmlFile(htmlFilePath); if (!htmlFile.is_open()) { cout << "Failed to open file: " << htmlFilePath << endl; return 1; } string htmlContent((istreambuf_iterator<char>(htmlFile)), istreambuf_iterator<char>()); htmlFile.close(); // 解析HTML文档 HTMLParserCtxtPtr parserCtxt = htmlCreatePushParserCtxt(NULL, NULL, "", 0, "", XML_CHAR_ENCODING_NONE); htmlParseChunk(parserCtxt, htmlContent.c_str(), htmlContent.size(), 0); htmlParseChunk(parserCtxt, "", 0, 1); xmlDocPtr docPtr = parserCtxt->myDoc; xmlNode *rootNode = xmlDocGetRootElement(docPtr); // 使用Tinyxml2解析文本内容 XMLDocument doc; parseHtml(rootNode, doc); cout << doc.FirstChildElement("body")->GetText() << endl; // 释放资源 xmlFreeDoc(docPtr); htmlFreeParserCtxt(parserCtxt); xmlCleanupParser(); xmlMemoryDump(); return 0; } void parseHtml(xmlNode *node, XMLDocument& doc) { for (xmlNode *curNode = node; curNode; curNode = curNode->next) { if (curNode->type == XML_TEXT_NODE) { doc.InsertEndChild(doc.NewText((const char *)curNode->content)); } else if (curNode->type == XML_ELEMENT_NODE && strcmp((const char *)curNode->name, "script") != 0) { XMLElement *newNode = doc.NewElement((const char *)curNode->name); for (xmlAttr *attr = curNode->properties; attr; attr = attr->next) { newNode->SetAttribute((const char *)attr->name, (const char *)attr->children->content); } parseHtml(curNode->children, newNode->ToDocument()); doc.InsertEndChild(newNode); } } } ``` 该示例代码将HTML文档解析为一个DOM树,然后使用递归的方式将文本内容提取出来,并使用Tinyxml2构建新的XML文档。其中,在解析HTML文档时,排除了`<script>`标签,因为`<script>`标签中的内容不应该被解析为文本内容。 最终,可以使用`doc.FirstChildElement("body")->GetText()`获取HTML文档中`<body>`标签中的纯文本内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值