在这篇文章中,我们将为您详细介绍html–更改css网格中的列顺序的内容,并且讨论关于html网格列表的相关问题。此外,我们还会涉及一些关于html的meta总结,html标签中meta属性使用介绍、
在这篇文章中,我们将为您详细介绍html – 更改css网格中的列顺序的内容,并且讨论关于html网格列表的相关问题。此外,我们还会涉及一些关于 html 的 meta 总结,html 标签中 meta 属性使用介绍、Android Html 与客户端交互 ---- 1.)html 操作 activity、ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction、asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处的知识,以帮助您更全面地了解这个主题。
本文目录一览:- html – 更改css网格中的列顺序(html网格列表)
- html 的 meta 总结,html 标签中 meta 属性使用介绍
- Android Html 与客户端交互 ---- 1.)html 操作 activity
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
- asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处
html – 更改css网格中的列顺序(html网格列表)
我正在玩CSS网格.
当我在桌面大小(最小宽度:769px)上查看它时,我有一行有3列 – 如下所示:
---------------------------------------------
| col 1 | col 2 | col 3 |
| | | |
---------------------------------------------
我可以使用css-grid移动列,这样我就可以在移动布局上执行以下操作:
---------------------------------------------
| col 1 | col 3 |
| | |
---------------------------------------------
| col 2 |
---------------------------------------------
我知道我用这样的东西跨越细胞:
.content{
grid-column: 1 / span2;
}
但我想改变列的顺序.没有预处理器,我可以这样做吗?
这是我当前的网格类:
.my-grid {
display:grid;
grid-template-columns: 15% 1fr 25% ;
grid-template-rows: 1fr; /* for as many rows as you need */
grid-gap: 10px;
border: 2px solid #222;
Box-sizing: border-Box;
}
这是原始布局:
grid-container {
display: grid;
grid-template-columns: 15% 1fr 25%;
grid-auto-rows: 50px; /* for demo */
grid-gap: 10px;
}
/* non-essential decorative styles */
grid-item {
border: 1px solid gray;
background-color: lightgreen;
display: flex;
align-items: center;
justify-content: center;
}
grid-item:nth-child(2) {
background-color: orange;
}
jsFiddle demo 1
网格模板区域
grid-template-areas属性允许您使用ASCII视觉艺术排列布局.
将网格区域名称(为每个元素定义)放置在您希望它们出现的位置.
grid-container {
display: grid;
grid-template-columns: 15% 1fr 25%;
grid-auto-rows: 50px; /* for demo */
grid-gap: 10px;
grid-template-areas: "column-1 column-2 column-3";
}
grid-item:nth-child(1) { grid-area: column-1; }
grid-item:nth-child(2) { grid-area: column-2; }
grid-item:nth-child(3) { grid-area: column-3; }
@media ( max-width: 500px ) {
grid-container {
grid-template-columns: 1fr 1fr;
grid-template-areas: " column-1 column-3 "
" column-2 column-2 ";
}
}
/* non-essential decorative styles */
grid-item {
border: 1px solid gray;
background-color: lightgreen;
display: flex;
align-items: center;
justify-content: center;
}
grid-item:nth-child(2) {
background-color: orange;
}
jsFiddle demo 2
规格参考:
07002
This property specifies named grid areas,which are not
associated with any particular grid item,but can be referenced from
the grid-placement properties.
The Syntax of the grid-template-areas
property also provides a
visualization of the structure of the grid,making the overall layout
of the grid container easier to understand.
All strings must have the same number of columns,or else the declaration is invalid.
If a named grid area spans multiple grid cells,but those cells do not form a single filled-in rectangle,the declaration is invalid.
Note: Non-rectangular or disconnected regions may be permitted in a future version of this module.
2.基于行的放置
使用grid-row-start,grid-row-end,grid-column-start,grid-column-end或它们的shorthands,grid-row和grid-column,在网格中设置网格项的大小和位置.
grid-container {
display: grid;
grid-template-columns: 15% 1fr 25%;
grid-auto-rows: 50px; /* for demo */
grid-gap: 10px;
}
@media ( max-width: 500px ) {
grid-container { grid-template-columns: 1fr 1fr; }
grid-item:nth-child(1) { grid-row: 1 / 2; grid-column: 1 / 2; }
grid-item:nth-child(2) { grid-row: 2 / 3; grid-column: 1 / 3; }
grid-item:nth-child(3) { grid-row: 1 / 2; grid-column: 2 / 3; }
}
/* non-essential decorative styles */
grid-item {
border: 1px solid gray;
background-color: lightgreen;
display: flex;
align-items: center;
justify-content: center;
}
grid-item:nth-child(2) {
background-color: orange;
}
jsFiddle demo 3
规格参考:
07004
3.订单
Grid Layout中的order属性与Flex Layout中的相同.
grid-container {
display: grid;
grid-template-columns: 15% 1fr 25%;
grid-auto-rows: 50px; /* for demo */
grid-gap: 10px;
}
@media ( max-width: 500px ) {
grid-container { grid-template-columns: 1fr 1fr; }
grid-item:nth-child(1) { order: 1; }
grid-item:nth-child(2) { order: 3; grid-column: 1 / 3; }
grid-item:nth-child(3) { order: 2; }
}
/* non-essential decorative styles */
grid-item {
border: 1px solid gray;
background-color: lightgreen;
display: flex;
align-items: center;
justify-content: center;
}
grid-item:nth-child(2) {
background-color: orange;
}
jsFiddle demo 3
规格参考:
07006
html 的 meta 总结,html 标签中 meta 属性使用介绍
引子
之前的我的博客中对于meta有个介绍,例如:http://www.haorooms.com/post/liulanq_think_ie 浏览器安全性想到的这篇文章,中间介绍了meta下面IE的一些属性,可以实现页面之间的过渡转换。已经SEO优化中有所提及。下面具体介绍一下meta的功能和使用。
前言
meta是html语言head区的一个辅助性标签。也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言,自动刷新并指向新的页面,实现网页转换时的动态效果,控制页面缓冲,网页定级评价,控制网页显示的窗口等!
html的meta总结
meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。
1、name属性
name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。
meta标签的name属性语法格式是:
<meta name="参数"content="具体的参数值">。
其中name属性主要有以下几种参数:
A、Keywords(关键字)
说明:keywords用来告诉搜索引擎你网页的关键字是什么。
举例:
<meta name="keywords"content="meta总结,html meta,meta属性,meta跳转">
B、description(网站内容描述)
说明:description用来告诉搜索引擎你的网站主要内容。
举例:
<meta name="description"content="haorooms博客,html的meta总结,meta是html语言head区的一个辅助性标签。">
C、robots(机器人向导)
说明:robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。
content的参数有all,none,index,noindex,follow,nofollow。默认是all。
举例:
<meta name="robots"content="none">
具体参数如下:
信息参数为all:文件将被检索,且页面上的链接可以被查询;
信息参数为none:文件将不被检索,且页面上的链接不可以被查询;
信息参数为index:文件将被检索;
信息参数为follow:页面上的链接可以被查询;
信息参数为noindex:文件将不被检索,但页面上的链接可以被查询;
信息参数为nofollow:文件将被检索,但页面上的链接不可以被查询;
D、author(作者)
说明:标注网页的作者
举例:
<meta name="author"content="root,root@xxxx.com">
E、generator
<meta name="generator"content="信息参数"/>
meta标签的generator的信息参数,代表说明网站的采用的什么软件制作。
F、COPYRIGHT
<META NAME="COPYRIGHT"CONTENT="信息参数">
meta标签的COPYRIGHT的信息参数,代表说明网站版权信息。
G、revisit-after
<META name="revisit-after"CONTENT="7days">
revisit-after代表网站重访,7days代表7天,依此类推。
2、http-equiv属性
http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。
meta标签的http-equiv属性语法格式是:
<meta http-equiv="参数"content="参数变量值">;
其中http-equiv属性主要有以下几种参数:
A、Expires(期限)
说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。
用法:
<meta http-equiv="expires"content="Fri,12Jan200118:18:18GMT">
注意:必须使用GMT的时间格式。
B、Pragma(cache模式)
说明:禁止浏览器从本地计算机的缓存中访问页面内容。
用法:
<meta http-equiv="Pragma"content="no-cache">
注意:这样设定,访问者将无法脱机浏览。
C、Refresh(刷新)
说明:自动刷新并指向新页面。
用法:
<meta http-equiv="Refresh"content="2;URL=http://www.haorooms.com"> //(注意后面的引号,分别在秒数的前面和网址的后面)
注意:其中的2是指停留2秒钟后自动刷新到URL网址。
D、Set-Cookie(cookie设定)
说明:如果网页过期,那么存盘的cookie将被删除。
用法:
<meta http-equiv="Set-Cookie"content="cookie value=xxx;expires=Friday,12-Jan-200118:18:18GMT;path=/">
注意:必须使用GMT的时间格式。
E、Window-target(显示窗口的设定)
说明:强制页面在当前窗口以独立页面显示。
用法:
<meta http-equiv="Window-target"content="_top">
注意:用来防止别人在框架里调用自己的页面。
F、content-Type(显示字符集的设定)
说明:设定页面使用的字符集。
用法:
<meta http-equiv="content-Type"content="text/html;charset=gb2312">
具体如下:
meta标签的charset的信息参数如GB2312时,代表说明网站是采用的编码是简体中文;
meta标签的charset的信息参数如BIG5时,代表说明网站是采用的编码是繁体中文;
meta标签的charset的信息参数如iso-2022-jp时,代表说明网站是采用的编码是日文;
meta标签的charset的信息参数如ks_c_5601时,代表说明网站是采用的编码是韩文;
meta标签的charset的信息参数如ISO-8859-1时,代表说明网站是采用的编码是英文;
meta标签的charset的信息参数如UTF-8时,代表世界通用的语言编码;
G、content-Language(显示语言的设定)
用法:
<meta http-equiv="Content-Language"content="zh-cn"/>
H、Cache-Control指定请求和响应遵循的缓存机制。
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、on
ly-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下
Public指示响应可被任何缓存区缓存
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
J、http-equiv="imagetoolbar"
<meta http-equiv="imagetoolbar"content="false"/>
指定是否显示图片工具栏,当为false代表不显示,当为true代表显示。
K、Content-Script-Type
<Meta http-equiv="Content-Script-Type"Content="text/javascript">
W3C网页规范,指明页面中脚本的类型。
L 页面跳转,只用于IE
具体请看 http://www.haorooms.com/post/liulanq_think_ie
Android Html 与客户端交互 ---- 1.)html 操作 activity
1. 何为 scheme 和 Uri
在 Android 中 scheme 是指 Uri 链接:之前的部分如 test://login scheme 即为 test。 可能很多人要为 URI 是怎么定义的呢?具体看 URI 的定义
- 英文愿意: An identifier is an object that can act as a reference to something that has identity. In the case of URI, the object is a sequence of characters with a restricted syntax.
- 翻译:
一个具有参考对象的可以唯一识别的标识符。在这种情况下,这个对象在有限的语法表达出有序的符号
2.Uri 的结构
test://video:8080/event?title="scheme"&url="www.xiaomi.com"
- scheme :test
- host :video
- port:8080
- path :/event
- query : titile ,url
3. 如果通过 H5 (url) 来启动相应的页面(activity)
String url="test://video:8080/event?title="scheme"&url="www.xiaomi.com" "
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
<activity android:name=".UriActivity">
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="test" android:host="video" />
</intent-filter>
</activity>
这样就可以在 UriActivity 中接收 url 跳转相应的动作以及数据。
> Uri data=getIntent().getData();
> data.getScheme();
> data.getHost();
> data.getPort();
> data.getPath();
> data.getQueryParameter("title");
4. 大量的不同的 scheme 跳转
如果我们在每个 activity 中配置 scheme ,host,path 显得特别麻烦。这个时候我们需要一个中转的 activity 来处理所有的 scheme 的跳转。根据相应的 host,path 来跳转到相应的 activity 做进一步处理。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Uri data = intent.getData();
String host = data.getHost();
if(host.equals("list")){
if ("/near".equals(data.getPath())) {//yhouse://list/near
intentTransfer = new Intent(this, NearbyActivity.class);
} else if ("/new".equals(data.getPath())) {//yhouse://list/new
intentTransfer = new Intent(this, NewSkuActivity.class);
} else if ("/live".equals(data.getPath())) {
intentTransfer = new Intent(this, LiveActivity.class);
} else if ("/neighbor".equals(data.getPath())) {
intentTransfer = new Intent(this, NeighborActivity.class);
} else if ("/talent".equals(data.getPath())) {
intentTransfer = new Intent(this, TalentListActivity.class);
} else if ("/guide".equals(data.getPath())) {
intentTransfer = new Intent(this, GuideActivity.class);
} else if ("/experience".equals(data.getPath())) {
intentTransfer = new Intent(this, PlayerActivity.class);
}else if ("/latest".equals(data.getPath())) {
intentTransfer = new Intent(this, CikeActivity.class);
} else if ("/message".equals(data.getPath())) {
intentTransfer = new Intent(this, HomeActivity.class);
} else if ("/message/like".equals(data.getPath())) {
intentTransfer = new Intent(this, MessageDetailActivity.class);
} else if ("/message/comment".equals(data.getPath())) {
intentTransfer = new Intent(this, MessageDetailActivity.class);
} else if ("/message/follow".equals(data.getPath())) {
intentTransfer = new Intent(this, MessageDetailActivity.class);
} else if ("/message/system".equals(data.getPath())) {
intentTransfer = new Intent(this, SystemNoticeActivity.class);
} else {
intentTransfer = new Intent(this, HomeActivity.class);
}
}else if ("my-member".equals(host)) {
intentTransfer = new Intent(this, MemberInfoActivity.class);
} else if ("event".equals(host)) {
intentTransfer = new Intent(this, HuodongDetailActivity.class);
} else if ("booking-list".equals(host)) {
intentTransfer = new Intent(this, OrderManagerActivity.class);
} else if ("my-party".equals(host)) {
intentTransfer = new Intent(this, OrderManagerActivity.class);
intentTransfer.putExtra("type", OrderManagerActivity.PARTY);
} else if ("order".equals(host)) {
intentTransfer = new Intent(this, BookingManageDetailActivity.class);
} else if ("meal".equals(host)) {
intentTransfer = new Intent(this, MealDetailActivity.class);
}
}
你可能发现大量的 if else 语句不是非常好的选择。你可以采用 swith case 看不起来更清爽一些。但是使用 HashMap 将是我们比较好的选择。
HashMap 处理 首发定义一个枚举 SchemeEnum 和类 SchemeManager
>``` public enum ShemeEnum {
> Nearby("/near", NearbyActivity.class), NewSku("/new", NewSkuActivity.class),Live("/live", LiveActivity.class),
> NeighborActivity("/neighbor", NeighborActivity.class),Talent("/talent", NeighborActivity.class),Guide("/guide", GuideActivity.class),
> Player("/experience", PlayerActivity.class),News("/news", NewsActivity.class),Latest("latest",CikeActivity.class),
> Message("/message",NeighborActivity.class),Like("/message/like",NeighborActivity.class),
> Comment("/message/comment",NeighborActivity.class),Follow("/message/follow",NeighborActivity.class),
> System("/message/system",NeighborActivity.class),event("event",HomeActivity.class);
> private String key;
> private Class<?> value;
>
> private ShemeEnum(String key, Class<?> value) {
> this.value = value;
> this.key = key;
> }
>
> public String getKey() {
> return key;
> }
>
> public Class<?> getValue() {
> return value;
> }
> }
>```
> public class SchemeManager {
> private static HashMap<String, Class> map = new HashMap();
> private static SchemeManager scheme;
>
> public static HashMap initScheme() {
> ShemeEnum[] values = ShemeEnum.values();
> int len=values.length;
> for (int i = 0; i <len ; i++) {
> map.put(values[i].getKey(), values[i].getValue());
> }
> return map;
> }
>
> public static HashMap<String, Class> getMap() {
> return map;
> }
> }
scheme 转化的 Activity 将整理成
>```
> public class UriActivity extends Activity {
> private SApplication sApplication;
>
> @Override
> protected void onCreate(Bundle savedInstanceState) {
> super.onCreate(savedInstanceState);
> setContentView(R.layout.activity_test);
> Log.e("---UriActivity---", getClass().getName());
> Uri data = getIntent().getData();
> sApplication = (SApplication) getApplication();
> Intent intent = getIntent();
> if (intent == null || data == null) finish();
> Intent intentTransfer = null;
> String host = data.getHost();
> if (host.equals("list")) {
> intentTransfer = getIntentTransfer(data.getPath());
> } else {
> intentTransfer = getIntentTransfer(host);
> }
> if (intentTransfer != null) {
> intentTransfer.setData(data);
> startActivity(intentTransfer);
> }
> finish();
> }
>
> private Intent getIntentTransfer(String path) {
> Object clazz = sApplication.getMap().get(path);
> Intent intentTransfer;
> if (clazz != null) {
> intentTransfer = new Intent(this, (Class<?>) clazz);
> } else {
> intentTransfer = new Intent(this, HomeActivity.class);
> }
> return intentTransfer;
> }
> }
> ``
感觉 UriActivity 变的更简洁。每次新加 scheme 只需要在对应的枚举中添加相应的 scheme 和 Activity 名称既可以正常的跳转。
5. 拦截 uri 跳转
如果你想在跳转的途中或者我直接操作相应的某个操作(显示弹框,去分享等等) 你首先要重写 WebViewClient shouldOverrideUrlLoading(WebView view, String url); 来实现拦截的目的。
this.setWebViewClient(new WebViewClient() {
String failedUrl;
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//TODO 判断是否要拦截。如果需要做你的拦截之后的动作。
//不需要直接跳转(看第3条)。
return true;
}
});
}
这样通过 H5 来打开相应的 activity 并且传递参数的相关内容介绍完。下一节。我们将讲解 Activity 传递给 html 数据,以及调用相关的方法。
ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
1.Action、RenderAction加载办法的视图,履行Controller → Model → View的次序,然后把产生的页面带回到本来的View中再回传。而Partial、RenderPartial直接加载视图文件内容
2.Html.Partial可以直接供给用户控件名作为参数,而Html.Action须要有对应的Action,在Action内部返回PartailResult(即retun PartialView())。
3.对于简单的没有任何逻辑的用户控件,推荐应用Html.Partial;对于须要设置一些Model的用户控件,推荐应用Html.Action。当然,有Model数据也是可以应用Html.Partial办法的,可以看办法的重载。
4.Html.Partial与Html.Action有啥区别呢?区别就是,Html.Partial只有一个视图,而Html.Action除了视图,还真的有个Action跟它对应,所以,Html.Action功能比Html.Partial要强。
如何调用这个Html.Partial
//1、以视图名使用当前文件夹下的视图(如果没有找到,则搜索 Shared 文件夹)
@Html.Partial(
"_test"
)
//加载对应文件 /Views/Product/_test.cshtml
//2、依据应用根路径定位视图// 以 "/" 或 "~/" 开头的路径代表应用根路径
@Html.Partial(
"~/Views/Product/_test.cshtml"
)
@Html.Partial(
"/Views/Product/_test2.cshtml"
)
//3、加载其他目录的 视图文件
//注意:需要复制views中的web.config 到template目录,否则会提示 "/template/A.cshtml”处的视图必须派生自 WebViewPage 或 WebViewPage<TModel>"
@Html.Partial(
"/template/A.cshtml"
)
asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处
Html.Partial and Html.RenderPartial Html.Action and Html.RenderAction
解决方法
Html.Partial使用已创建的模型(或者可以在没有模型的情况下调用)来渲染指定的视图.
何时使用一个而不是另一个?如果您已有模型并且只想拥有可重复使用的视图,请选择Html.Partial.如果你看到某个部分值得拥有自己的模型和动作,那么使用Html.Action可能是有意义的.
这个问题在this article中有更详细的讨论,你在上面看到的基本上是它的摘录.
今天关于html – 更改css网格中的列顺序和html网格列表的介绍到此结束,谢谢您的阅读,有关 html 的 meta 总结,html 标签中 meta 属性使用介绍、Android Html 与客户端交互 ---- 1.)html 操作 activity、ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction、asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处等更多相关知识的信息可以在本站进行查询。
本文标签: