实时搜索: ie兼容有哪些

ie兼容有哪些

968条评论 1544人喜欢 2153次阅读 659人点赞
原来听说中文域名没有发展起来是因为浏览器不支持,但现在是不是已经没有这个问题了?还是说这个完全要看各家浏览器企业自己决定? , 我的电脑有IE8,但我习惯使用搜狗双核浏览器。我在处理网页的时候,如图的问题一直得不到解决,请各位高人赐教。
-------------------------HTML端代码开始-------------------------
<div class="nav">
<nav>
<ul class="menu">
...

浏览器支持哪些中文域名?: 目前,全球主流浏览器全部无障碍支持中文域名,包括微软IE7以上版本/OPERA9.5/SAFARI 3.1/火狐2.0、3.0、谷歌Chrome”等等浏览器都中文域名有着很好的支持。支持中文域名已成未来浏览器必备功能之一。
(1)在上述浏览器中直接输入“中国人民银行.CN”即可直达中国人民银行网站;此外,繁简体等效,“。”与“.”等效,也即地址栏输入“中国人民银行.CN”、“中国人民银行。cn”,同样指向中国人银行网站。
(2)地址栏默认回显中文
(3)下拉列表回显中文
(4)“书签”(收藏夹)中可以正确添加、显示、访问
(5)“历史记录”中能正确显示和访问已访问过的中文域名。

CSS浏览器兼容问题,只有IE浏览器显示不居中: 因为ie低版本不知道nav是什么,所以会忽略掉。css中少用html5里的tag做selector。
一般给新tag给display:block就好了。

这里给<div class="nav“>设置css试试。就在nav前面加个点(.)。
.nav {background:url(../images/nav.png) 0 0 repeat; width:1024px; margin:3px auto 0 auto; position:relative; }

暂不支持显示此fIash内容,可在系统浏览器内查看,怎么解决?: 如果你现在使用的浏览器不支持flash内容的话,你就关闭这个浏览器,使用IE
IE浏览器,一般都是可以看所有flash的内容,而且速度也还可以。

支持ActiveX的浏览器都有哪些: 360系列 qq系列 百度 uc ie

课件不支持此浏览器内核,请使用IE内核浏览器(如果浏览器有多种浏览模式,请切换到兼容模式)!什么情况呢: 你使用Chrome或者360极速?
有些旧网页依然只支持IE核心浏览器,请使用IE或者IE核的浏览器访问

有哪些好用的在线界面原型工具,且支持IE: 十大界面原型与布局工具

作者夏梦竹

工具开发者原型设计SolidifyPowerMockupAntetypePOP
摘要:原型设计能起到有效沟通的作用,漂亮,直观的原型图更是让人赏心悦目。本文罗列了2013年最新的10大界面原型与布局工具以帮助设计师和开发者创建出更加优秀的产品。
创建网页或者程序不仅要关注主页的排版以及与主题想匹配的图片,还应注重视觉设计,这是因为它更能吸引用户进而提升搜索量。因此,项目开发首先需要确立良好的设计,创意是必不可少的。所以,项目经理、Web设计师、开发者在线框和原型工具方面需要具备一定的功底。
本文罗列了2013年最新的10大界面原型与布局工具以帮助设计师和开发者创建出更加优秀的产品。
1. Solidify
Solidify允许用户在模型、线框或者草图中获取原型图。此外,你还可以快速地查看屏幕界面原型。如果在桌面、计算机或者手机上运行Solidify还能轻易地测试出项目原型。如果你没有太多的时间花在这上面,你也可以共享给其他测试人员,随时随地获取反馈意见。
2. PowerMockup
专为设计师准备的PowerMockup在创建PowerPoint时为线框提供模板。包含各式各样的模板,包括菜单、表格、文本框、按钮和标签。当你在创建PPT时你可以轻易的将这些模板拖入使用。另外,用户还能在库中添加自己的条目,只需选择PPT的外形,然后点击“添加模板”标签,一款自定义的模板即可轻松创建。
3. Antetype
当你创建大型的且连续性的项目时,Antetype是最佳选择,这是因为它允许开发者创建一整套的构件库。该构件库可收集各小部件,在原型中方便易用。此外,每个小部件都有一定数量的定制和默认状态可单独或者同时进行编辑。
因此用户在编辑时无需使用不同的副本,Antetype可适应不同项目的需求。
4. UXPin
UXPin是为那些不擅长UX设计的开发者而开发的。经验丰富的UX设计师为UXPin提供了一整套的完整的工具包。
在UXPin上用户可以为自己的项目找到所需要的模板。他们通过上传UX和项目文件来获取模板,比如Project Canvas、Project Kick Off、Business Model Canvas、Personas等等。
此外,用户无需来回收发邮件,因为在这里任何项目都可在一起工作。UXPin旨在帮助项目经理开发适应任何一款分辨率和设备的响应式线框和原型。
5. QuirkTools
QuirkTools让网站创建更加简单和便捷。

利用QuirkTools构建Web应用可帮助用户创建属于自己的一款应用。Wires就是典型的例子,该应用帮助用户创建基于桌面、移动手机或平板电脑的线框模型。此外,QuirkTools还能让开发者与同事、客户共同协作打造最完美的设计。
6. Wireframe.cc
利用Wireframe.cc即可轻易的创建线框。Wireframe.cc支持有限的调色板和模板,以简洁为主。有两个模板供选择:移动手机和浏览器窗口,前者包含景色和垂直风格;后者则是纵向和横向风格。有了Wireframes.cc用户可清晰的看到整个创建过程。
7. Easel
Easel是一款基于浏览器的Web设计工具,允许用户记录模型和创意。其功能包括按钮、表和文本框。这款工具还集成了Twitter Bootstrap库贯穿其他额外的图标和颜色。此外,Easel 让用户在Web中设计保持最佳像素,用户可以使用先进的工具比如CSS3、Web字体,无需在浏览器和文本编辑器之间来回查看,告别繁琐的过程,轻松创建应用。
8. InVision
InVision让你以高水准的级别快速创建令人印象深刻的原型。利用这款工具,用户可在很短的时间内链接到UX草图、设计以及线框,还能与其他团队分享该项目。InVision使设计演示更加轻松方便,用户可以在项目中进行实际演示,在浏览器中加载或者以SMS形式连接到移动设备上。
该工具还支持追踪功能,让你轻松查看项目进度。
9. Proto.io
Proto.io这款工具完美适合设计师在触摸屏幕上的小工具。支持主流的移动触摸风格和手势,包括swipe、pinch、tap、zoom、tap-hold。此外,还能整合动画屏幕转换比如,幻灯片、旋转、流、翻转等等。
该工具不仅仅是为了生产先进的屏幕转换,还能允许用户学习和应用最基本的动画技能比如在原型创建中的移动、缩放、旋转等等。
10. POP

有了Prototyping on Paper (POP)创建iPhone原型不再是难事,其提供了一个传统的高科技线框技术。没有复杂的软件,所有的用户需要在纸上或者笔记本上绘画或绘制出线框。
该线框仅通过摄像头拍摄,利用POP确保草图能自动调节对比度和亮度,然后通过“链接点”连接到草图来设计模板。首先确保任何事情都在完美状态,用户只需点击“play”并模拟接口即可。
最后:
在设计网页或程序之前,需要把界面给“画”出来成为原型设计,就像动画片要画分镜头、手稿一样。原型设计能起到有效沟通的作用,漂亮,直观的原型图更是让人赏心悦目。有了这些工具,原型和线框变得更加简单和方便,即使是初学者也可设计自己的网站或者应用,赶紧尝鲜吧。
当然,原型工具还有很多很多,欢迎与我们分享。

我是学前端开发的,想问下做前端需要兼容哪些浏览器及浏览器的版本: 目前国内主流浏览器:IE、搜狗、360 (可以百度 国内浏览器排行 )
IE要兼容到IE6、7、8,主要是IE6的问题
搜狗和360差不多,主要是那个 极速 模式

jfinal不兼容的浏览器有哪些:

官网介绍:
JFinal 是基于 Java 语言的极速 WEB + ORM
框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友
:)

Jfinal是JAVA框架, 不在浏览器上执行的, 是两个方向。
如果你说的是Jfinal做为后台,进行下载文件服务时,是否有浏览器兼容问题,在Jfinal3.0之后的版已经全面兼容了

3.3版的源码中可看到已经有处理:

/**
 * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.jfinal.render;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jfinal.kit.LogKit;
import com.jfinal.kit.StrKit;

/**
 * FileRender.
 */
public class FileRender extends Render {
    
    protected static final String DEFAULT_CONTENT_TYPE = "application/octet-stream";
    protected static String baseDownloadPath;
    protected static ServletContext servletContext;
    
    protected File file;
    protected String downloadFileName = null;
    
    public FileRender(File file) {
        if (file == null) {
            throw new IllegalArgumentException("file can not be null.");
        }
        this.file = file;
    }
    
    public FileRender(File file, String downloadFileName) {
        this(file);
        
        if (StrKit.isBlank(downloadFileName)) {
            throw new IllegalArgumentException("downloadFileName can not be blank.");
        }
        this.downloadFileName = downloadFileName;
    }
    
    public FileRender(String fileName) {
        if (StrKit.isBlank(fileName)) {
            throw new IllegalArgumentException("fileName can not be blank.");
        }
        
        String fullFileName;
        fileName = fileName.trim();
        if (fileName.startsWith("/") || fileName.startsWith("\\")) {
            if (baseDownloadPath.equals("/")) {
                fullFileName = fileName;
            } else {
                fullFileName = baseDownloadPath + fileName;    
            }
        } else {
            fullFileName = baseDownloadPath + File.separator + fileName;
        }
        
        this.file = new File(fullFileName);
    }
    
    public FileRender(String fileName, String downloadFileName) {
        this(fileName);
        
        if (StrKit.isBlank(downloadFileName)) {
            throw new IllegalArgumentException("downloadFileName can not be blank.");
        }
        this.downloadFileName = downloadFileName;
    }
    
    static void init(String baseDownloadPath, ServletContext servletContext) {
        FileRender.baseDownloadPath = baseDownloadPath;
        FileRender.servletContext = servletContext;
    }
    
    public void render() {
        if (file == null || !file.isFile()) {
            RenderManager.me().getRenderFactory().getErrorRender(404).setContext(request, response).render();
            return ;
        }
        
        // ---------
        response.setHeader("Accept-Ranges", "bytes");
        String fn = downloadFileName == null ? file.getName() : downloadFileName;
        response.setHeader("Content-disposition", "attachment; " + encodeFileName(request, fn));
        String contentType = servletContext.getMimeType(file.getName());
        response.setContentType(contentType != null ? contentType : DEFAULT_CONTENT_TYPE);
        
        // ---------
        if (StrKit.isBlank(request.getHeader("Range"))) {
            normalRender();
        } else {
            rangeRender();
        }
    }
    
    protected String encodeFileName(String fileName) {
        try {
            // return new String(fileName.getBytes("GBK"), "ISO8859-1");
            return new String(fileName.getBytes(getEncoding()), "ISO8859-1");
        } catch (UnsupportedEncodingException e) {
            return fileName;
        }
    }
    
    /**
     * 依据浏览器判断编码规则
     */
    public String encodeFileName(HttpServletRequest request, String fileName) {
        String userAgent = request.getHeader("User-Agent");
        try {
            String encodedFileName = URLEncoder.encode(fileName, "UTF8");
            // 如果没有UA,则默认使用IE的方式进行编码
            if (userAgent == null) {
                return "filename=\"" + encodedFileName + "\"";
            }
            
            userAgent = userAgent.toLowerCase();
            // IE浏览器,只能采用URLEncoder编码
            if (userAgent.indexOf("msie") != -1) {
                return "filename=\"" + encodedFileName + "\"";
            }
            
            // Opera浏览器只能采用filename*
            if (userAgent.indexOf("opera") != -1) {
                return "filename*=UTF-8''" + encodedFileName;
            }
            
            // Safari浏览器,只能采用ISO编码的中文输出,Chrome浏览器,只能采用MimeUtility编码或ISO编码的中文输出
            if (userAgent.indexOf("safari") != -1 || userAgent.indexOf("applewebkit") != -1 || userAgent.indexOf("chrome") != -1) {
                return "filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO8859-1") + "\"";
            }
            
            // FireFox浏览器,可以使用MimeUtility或filename*或ISO编码的中文输出
            if (userAgent.indexOf("mozilla") != -1) {
                return "filename*=UTF-8''" + encodedFileName;
            }
            
            return "filename=\"" + encodedFileName + "\"";
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
    }
    
    protected void normalRender() {
        response.setHeader("Content-Length", String.valueOf(file.length()));
        InputStream inputStream = null;
        OutputStream outputStream = null;
        try {
            inputStream = new BufferedInputStream(new FileInputStream(file));
            outputStream = response.getOutputStream();
            byte[] buffer = new byte[1024];
            for (int len = -1; (len = inputStream.read(buffer)) != -1;) {
                outputStream.write(buffer, 0, len);
            }
            outputStream.flush();
            outputStream.close();
        } catch (IOException e) {
            String n = e.getClass().getSimpleName();
            if (n.equals("ClientAbortException") || n.equals("EofException")) {
            } else {
                throw new RenderException(e);
            }
        } catch (Exception e) {
            throw new RenderException(e);
        } finally {
            if (inputStream != null)
                try {inputStream.close();} catch (IOException e) {LogKit.error(e.getMessage(), e);}
        }
    }
    
    protected void rangeRender() {
        Long[] range = {null, null};
        processRange(range);
        
        String contentLength = String.valueOf(range[1].longValue() - range[0].longValue() + 1);
        response.setHeader("Content-Length", contentLength);
        response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);    // status = 206
        
        // Content-Range: bytes 0-499/10000
        StringBuilder contentRange = new StringBuilder("bytes ").append(String.valueOf(range[0])).append("-").append(String.valueOf(range[1])).append("/").append(String.valueOf(file.length()));
        response.setHeader("Content-Range", contentRange.toString());
        
        InputStream inputStream = null;
        OutputStream outputStream = null;
        try {
            long start = range[0];
            long end = range[1];
            inputStream = new BufferedInputStream(new FileInputStream(file));
            if (inputStream.skip(start) != start)
                    throw new RuntimeException("File skip error");
            outputStream = response.getOutputStream();
            byte[] buffer = new byte[1024];
            long position = start;
            for (int len; position <= end && (len = inputStream.read(buffer)) != -1;) {
                if (position + len <= end) {
                    outputStream.write(buffer, 0, len);
                    position += len;
                }
                else {
                    for (int i=0; i<len && position <= end; i++) {
                        outputStream.write(buffer[i]);
                        position++;
                    }
                }
            }
            outputStream.flush();
            outputStream.close();
        }
        catch (IOException e) {
            String n = e.getClass().getSimpleName();
            if (n.equals("ClientAbortException") || n.equals("EofException")) {
            } else {
                throw new RenderException(e);
            }
        }
        catch (Exception e) {
            throw new RenderException(e);
        }
        finally {
            if (inputStream != null)
                try {inputStream.close();} catch (IOException e) {LogKit.error(e.getMessage(), e);}
        }
    }
    
    /**
     * Examples of byte-ranges-specifier values (assuming an entity-body of length 10000):
     * The first 500 bytes (byte offsets 0-499, inclusive): bytes=0-499
     * The second 500 bytes (byte offsets 500-999, inclusive): bytes=500-999
     * The final 500 bytes (byte offsets 9500-9999, inclusive): bytes=-500
     *                                                             Or bytes=9500-
     */
    protected void processRange(Long[] range) {
        String rangeStr = request.getHeader("Range");
        int index = rangeStr.indexOf(',');
        if (index != -1)
            rangeStr = rangeStr.substring(0, index);
        rangeStr = rangeStr.replace("bytes=", "");
        
        String[] arr = rangeStr.split("-", 2);
        if (arr.length < 2)
            throw new RuntimeException("Range error");
        
        long fileLength = file.length();
        for (int i=0; i<range.length; i++) {
            if (StrKit.notBlank(arr[i])) {
                range[i] = Long.parseLong(arr[i].trim());
                if (range[i] >= fileLength)
                    range[i] = fileLength - 1;
            }
        }
        
        // Range format like: 9500-
        if (range[0] != null && range[1] == null) {
            range[1] = fileLength - 1;
        }
        // Range format like: -500
        else if (range[0] == null && range[1] != null) {
            range[0] = fileLength - range[1];
            range[1] = fileLength - 1;
        }
        
        // check final range
        if (range[0] == null || range[1] == null || range[0].longValue() > range[1].longValue())
            throw new RuntimeException("Range error");
    }
}

  • dnf福娃在哪里

    cpu天梯图是什么: 其实就是根据CPU的性能,给CPU进行排名的一张图。越靠下面的性能越低,上面的性能高,排列起来,像梯子一样,最上面不封顶,所以叫天梯图。下面就是一张CPU的天梯图。 ...

    799条评论 6334人喜欢 2617次阅读 694人点赞
  • 昆明有几个青少年宫

    上火了,屁眼很痛,该吃什么食物降火: 上火是日常生活中十分常见的一种症状 败火的原则和方法. (1)清热解毒类:如菊花.黄瓜.板蓝根.番茄.竹笋.绿豆.豆腐.芹菜.荸荠.菱角.马齿苋.金针菜等.多有抗菌消炎作用.适用于各种实火症候.(2)苦寒制火类:如苦...

    997条评论 1022人喜欢 5463次阅读 390人点赞
  • 五月天为什么那么多人

    电脑CPU是怎么制造的: CPU是怎么被制造出来的。(1) 硅提纯生产CPU等芯片的材料是半导体,现阶段主要的材料是硅Si,这是一种非金属元素,从化学的角度来看,由于它处于元素周期表中金属元素区与非金属元素区的交界处,所以具有半导体的性质,适...

    477条评论 1036人喜欢 6572次阅读 231人点赞
  • 2016年安徽自主招生学校有哪些学校

    为什么春天燕子要从南方飞回来: 燕是典型的迁徙鸟.繁殖结束后,幼鸟仍跟随成鸟活动,并逐渐集成大群,在第一次寒潮到来前南迁越冬.且北方的冬季是没有飞虫可供燕子捕食的,燕子又不能像啄木鸟和旋木雀那样去发掘潜伏下来的昆虫的幼虫、虫蛹和虫卵.食物的匮乏使燕...

    293条评论 4696人喜欢 3510次阅读 285人点赞
  • 14年两天一夜在哪里看

    惠普cpu多少钱: 惠普CPU根据其性能、接口方式有非常多的型号,所以无法帮您估算。CPU是任何计算机等相关智能设备的核心部件。目前全球生产CPU的厂商并不多,常见的有intel、AMD,惠普公司生产的电脑则由这些CPU厂商根据自己设计...

    548条评论 1967人喜欢 1959次阅读 246人点赞
  • 五粮春酒如何

    电梯怎么清洗: 1、清洁轿厢内壁将抹布浸入配制好清洁剂的水桶中,拿起后拧干,沿着轿厢内壁从上往下用力抹擦,若壁上沾有较顽固的污垢或污迹,可用铲轻刮或直接喷上清洁剂后用抹布用力来回抹擦,用另一块抹布浸透清水后,拧干抹擦。将抹布过清永后...

    883条评论 6324人喜欢 1385次阅读 501人点赞