openai禁止的国家有哪些?openai中文版
openai支持哪个国家OpenAI,一家由硅谷科技大亨创立的领先研究机构,旨在推动人工智能技术的发展。目前,OpenAI支持全球152个国家和地区申请,包括中国台湾,但不包括中国大陆和香港。为了让更...
大家好,感谢邀请,今天来为大家分享一下minheight的问题,以及和css中min-height和height的问题的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
当我们给块级元素设置响应式高度的时候,例如给div设置height=50%,往往没能看到效果。
原因是百分比的大小是相对其父级元素宽高的大小,如最外层元素设置的百分比是对应屏幕而言的。
需要了解的是对于宽度来说,其父级元素无须确定宽度就能设置百分比,例如我们可以利用这个特性给未知宽度的块级元素设置水平居中效果:
父元素css: position: relative/absolute; left: 50%;
子元素css: position: relative; left:-50%;
但高度则不同,若某元素的父元素没有确定高度,则无法有效使用height=XX%的样式,我们可以这样解决(假设最外层的div需要设置百分比高度样式):
html, body{
height: 100%;
}
.outDiv{
height: 50%;
}
不过这里有个需要注意的,若div里的内容超出了div的高度,在IE7+的浏览器是无法将div撑起来的(IE6则可以),如果要顾及这一点,可以使用min-height解决(当然也要考虑IE6不支持min-height的问题):
html, body{
height: 100%;
}
.outDiv{
min-height: 50%;
}
* html.outDiv{
height: 50%;
}
最后说通俗点,如果你想把高度设为百分比,那么父级必须设置高度
对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioct1的实现等,并把它们定义在struct file_operations中。这样当应用程序对设备文件进行诸如open、close、read、write等系统调用操作时,Linux内核将通过file_operations结构访问驱动程序提供的函数。例如,当应用程序对设备文件执行读操作时,内核将调用file_operations结构中的read函数。在系统平台上对USB口数码摄像头驱动,首先把USB控制器驱动模块静态编译进内核,使平台中支持USB接口,再在需要使用摄像头采集时,使用insmod动态加载其驱动模块,这样摄像头就可正常工作了,接着进行了下一步对视频流的采集编程。
程序中定义的数据结构
struct video_capability grab_cap;
struct video_picture grab_pic;
struct video_mmap grab_buf;
struct video_mbuf grab_vm;
这些数据结构都是由Video4Linux支持的,它们的用途如下:
*video_capability包含摄像头的基本信息,例如设备名称、支持的最大最小分辨率、信号源信息等,分别对应着结构体中成员变量name [32]、maxwidth、maxheight、minwidth、minheight、channels(信号源个数)、type等;
*voide_picture包含设备采集图像的各种属性,如brightness(亮度)、hue(色调)、contrast(对比度)、whiteness(色度)、depth(深度)等;
*video_mmap用于内存映射;
*video_mbuf利用mmap进行映射的帧信息,实际上是输入到摄像头存储器缓冲中的帧信息,包括size(帧的大小)、frames(最多支持的帧数)、offsets(每帧相对基址的偏移)。
程序中用到的主要系统调用函数有:open(/dev/voideo0,int flags)、close(fd)、mmap(void*start,size_t length,int prot,int flags,int fd,off_t offset)、munmap(void*start,size_tlength)和ioctl(int fd,int cmd,…)。
前面提到Linux系统中把设备看成设备文件,在用户空间可以通过标准的I/O系统调用函数操作设备文件,从而达到与设备通信交互的目的。当然,在设备驱动中要提供对这些函数的相应支持。这里说明一下ioctl(int fd,int cmd,…)函数,它在用户程序中用来控制I/O通道,其中,fd代表设备文件描述符,cmd代表用户程序对设备的控制命令,省略号一般是一个表示类型长度的参数,也可没有。
(2)采集程序实现过程
首先打开视频设备,摄像头在系统中对应的设备文件为/dev/video0,采用系统调用函数grab_fd=open(/dev/video0, O_RDWR),grab_fd是设备打开后返回的文件描述符(打开错误返回-1),以后的系统调用函数就可使用它来对设备文件进行操作了。接着,利用 ioctl(grab_fd,VIDIOCGCAP,&grab_cap)函数读取struct video_capability中有关摄像头的信息。该函数成功返回后,这些信息从内核空间拷贝到用户程序空间grab_cap各成员分量中,使用 printf函数就可得到各成员分量信息,例如printf(maxheight=%d,grab_fd.maxheight)获得最大垂直分辨率的大小。不规则用ioctl(grab_fd,VIDIOCGPICT,&grab_pic)函数读取摄像头缓冲中voideo_picture信息。在用户空间程序中可以改变这些信息,具体方法为先给分量赋新值,再调用VIDIOCSPICT ioctl函数,例如:
grab_fd.depth=3;
if(ioctl(grab_fd,VIDIOCSPICT,&grab_pic)<0)
{perror(VIDIOCSPICT);return-1;};
完成以上初始化设备工作后,就可以对视频图像截取了,有两种方法:一种是read()直接读取;另外一种mmap()内存映射。Read()通过内核缓冲区来读取数据;而mmap()通过把设备文件映射到内存中,绕过了内核缓冲区,最快的磁盘访问往往还是慢于最慢的内存访问,所以mmap()方式加速了 I/O访问。另外,mmap()系统调用使得进程之间通过映射同一文件实现共享内存,各进程可以像访问普通内存一样对文件进行访问,访问时只需要使用指针而不用调用文件操作函数。因为mmap()的以上优点,所以在程序实现中采用了内存映射方式,即mmap()方式。
利用mmap()方式视频裁取具体进行操作如下。
①先使用ioctl(grab_fd,VIDIOCGMBUF,&grab_vm)函数获得摄像头存储缓冲区的帧信息,之后修改voideo_mmap中的设置,例如重新设置图像帧的垂直及水平分辨率、彩色显示格式。可利用如下语句
grab_buf.height=240;
grab_buf.width=320;
grab_buf.format=VIDEO_PALETTE_RGB24;
②接着把摄像头对应的设备文件映射到内存区,具体使用grab_data=(unsigned char*)mmap(0,grab_vm.size,PROT_READ|PROT_WRITE,MAP_SHARED,grad_fd,0)操作。这样设备文件的内容就映射到内存区,该映射内容区可读可写并且不同进程间可共享。该函数成功时返回映像内存区的指针,挫败时返回值为-1。
下面对单帧采集和连续帧采集进行说明:
*单帧采集。在上面获取的摄像头存储缓冲区帧信息中,最多可支持的帧数(frames的值)一般为两帧。对于单帧采集只需设置 grab_buf.frame=0,即采集其中的第一帧,使用ioctl(grab_fd,VIDIOCMCAPTURE,&grab_buf)函数,若调用成功,则激活设备真正开始一帧图像的截取,是非阻塞的。接着使用ioctl(grab_fd,VIDIOCSYNC,&frame)函数判断该帧图像是否截取完毕,成功返回表示截取完毕,之后就可把图像数据保存成文件的形式。
*连续帧采集。在单帧的基础上,利用grab_fd.frames值确定采集完毕摄像头帧缓冲区帧数据进行循环的次数。在循环语句中,也是使用VIDIOCMCCAPTURE ioct1和VIDIOCSYNC ioctl函数完成每帧截取,但要给采集到的每帧图像赋地址,利用语句buf=grab_data+grab_vm.offsets[frame],然后保存文件的形式。若要继续采集可再加一个外循环,在外循环语句只要给原来的内循环再赋frame=0即可。
通过使用KE.show(config)方法即可将编辑器添加到文档中。下面是一段源码:
KE.show= function(args){
KE.init(args);
KE.event.ready(function(){ KE.create(args.id);});
};
从源码中可以看出,有两种使用编辑器的方法:
法一:KE.show(config);
法二:KE.init(config);KE.create(id);
·无论使用哪种方式使用KindEditor编辑器,都必须进行参数配置;
·可以在KE.show()和KE.init()方法中传递配置参数config;
·配置参数config是一个对象,一般使用字面量对象;
·其中,id参数是唯一必须进行配置的,其他参数可以省略。
参数设置例子
KE.show({
id:"content_1",
width:"70%",//编辑器的宽度为70%
height:"200px",//编辑器的高度为100px
filterMode: false,//不会过滤HTML代码
resizeMode: 1//编辑器只能调整高度
});
配置参数
1、id
TEXTAREA输入框的ID,必须设置。
数据类型:String
2、items
配置编辑器的工具栏,其中"-"表示换行,"|"表示分隔符。
数据类型:Array
默认值:
['source','|','fullscreen','undo','redo','print','cut','copy','paste',
'plainpaste','wordpaste','|','justifyleft','justifycenter','justifyright',
'justifyfull','insertorderedlist','insertunorderedlist','indent','outdent','subscript',
'superscript','|','selectall','-',
'title','fontname','fontsize','|','textcolor','bgcolor','bold',
'italic','underline','strikethrough','removeformat','|','image',
'flash','media','advtable','hr','emoticons','link','unlink','|','about']
3、width
编辑器的宽度,可以设置px或%,比TEXTAREA输入框样式表宽度优先度高。
数据类型:String
默认值:TEXTAREA输入框的宽度
注: 3.2版本开始支持。
4、height
编辑器的高度,只能设置px,比TEXTAREA输入框样式表高度优先度高。
数据类型:String
默认值:TEXTAREA输入框的高度
注: 3.2版本开始支持。
5、minWidth
数据类型:Int
指定编辑器最小宽度,单位为px。
默认值:200
6、minHeight
数据类型:Int
指定编辑器最小高度,单位为px。
默认值:100
7、filterMode
数据类型:Boolean
true时过滤HTML代码,false时允许输入任何代码。
默认值:false
注: 3.4以前版本的filterMode默认值为true。
8、htmlTags
指定要保留的HTML标记和属性。哈希数组的key为HTML标签名,value为HTML属性数组,"."开始的属性表示style属性。
数据类型:Object
默认值:
{
font: ['color','size','face','.background-color'],
span: ['style'],
div: ['class','align','style'],
table:['class','border','cellspacing','cellpadding','width','height','align','style'],
'td,th':['class','align','valign','width','height',
'colspan','rowspan','bgcolor','style'],
a: ['class','href','target','name','style'],
embed: ['src','width','height','type','loop','autostart','quality',
'style','align','allowscriptaccess','/'],
img: ['src','width','height','border','alt','title','align','style','/'],
hr: ['class','/'],
br: ['/'],
'p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6': ['align','style'],
'tbody,tr,strong,b,sub,sup,em,i,u,strike': []
}
注:filterMode为true时有效。3.4版本开始属性可设置style,保留所有inline样式。
9、resizeMode
2或1或0,2时可以拖动改变宽度和高度,1时只能改变高度,0时不能拖动。
数据类型:Int
默认值:2
10、skinType
风格类型,default或tinymce。
数据类型:String
默认值:default
注:3.4以前版本和3.4.1版本开始默认值为default,3.4版本的默认值为oxygen。
11、wyswygMode
可视化模式或代码模式
数据类型:Boolean
默认值:true
12、cssPath
指定编辑器iframe document的CSS,用于设置可视化区域的样式。
数据类型:String或Array
默认值:空
注:3.4.1版本开始可指定多个CSS文件。例如:cssPath: ['a.css','b.css']
13、skinsPath
指定编辑器的skins目录,skins目录存放风格的css文件和gif图片。
数据类型:String
默认值:KE.scriptPath+'skins/'
14、pluginsPath
指定编辑器的plugins目录。
数据类型:String
默认值:KE.scriptPath+'plugins/'
15、minChangeSize
undo/redo文字输入最小变化长度,当输入的文字变化小于这个长度时不会添加到undo堆栈里。
数据类型:Int
默认值:5
16、loadStyleMode
true时自动加载编辑器的CSS。
数据类型:Boolean
默认值:true
注: 3.4版本开始支持。
17、urlType
改变站内本地URL,可设置空、relative、absolute、domain。
空为不修改URL,relative为相对路径,absolute为绝对路径,domain为带域名的绝对路径。
数据类型:String
默认值:空
注: 3.4版本开始支持,3.4.1版本开始默认值为空。
18、newlineTag
设置回车换行标签,可设置p、br。
数据类型:String
默认值:br
注: 3.4版本开始支持。
19、afterCreate
设置编辑器创建后执行的回调函数。
数据类型:Function
默认值:无
20、afterDialogCreate
设置弹出浮动框创建后执行的回调函数。
数据类型:Function
默认值:无
注: 3.4.3版本开始支持。
21、allowUpload
true或false,true时显示上传图片标签。
数据类型:Boolean
默认值:true
注: 3.4版本开始支持。
22、allowFileManager
true或false,true时显示浏览服务器图片功能。
数据类型:Boolean
默认值:false
注: 3.4版本开始支持。
23、referMethod
设置referMethod后上传图片的POST参数里有referMethod。
数据类型:String
默认值:空
注: 3.4版本开始支持。
24、dialogAlignType
设置弹出框(dialog)的对齐类型,可设置page和空。
指定page时按当前页面居中,指定空时按编辑器居中。
数据类型:String
默认值:page
注: 3.4.1版本开始支持。
25、imageUploadJson
指定上传图片的服务器端程序。
数据类型:String
默认值:../../php/upload_json.php
注: 3.4.1版本开始支持。
26、fileManagerJson
指定浏览远程图片的服务器端程序。
数据类型:String
默认值:../../php/file_manager_json.php
注: 3.4.1版本开始支持。
27、autoSetDataMode
true或false。
true时自动将编辑器内容设置到原来的textarea,也就是每次输入内容就执行KE.util.setData函数。
数据类型:Boolean
默认值:true
注: 3.5版本开始支持。打开autoSetDataMode模式后会降低输入性能,理想的做法是关闭autoSetDataMode,提交数据前执行KE.util.setData。
28、afterSetData
自动执行KE.util.setData后执行的回调函数,autoSetDataMode为true时有效。
数据类型:Function
默认值:无
注: 3.5版本开始支持。
29、shadowMode
true或false,true时弹出层显示阴影。
数据类型:Boolean
默认值:true
注: 3.5版本开始支持。
30、allowPreviewEmoticons
true或false,true时鼠标放在表情上可以预览表情。
数据类型:Boolean
默认值:true
注: 3.5版本开始支持。
好了,关于minheight和css中min-height和height的问题的问题到这里结束啦,希望可以解决您的问题哈!