分类 默认分类 下的文章

CSS 让背景图片铺满全部显示,填满当前div的方法

.class{
   background-image: url('a.jpg');
   background-repeat: no-repeat;
   background-size: 100% 100%;
}

background-size

首先声明
   background-size是一个css3属性。 翻译过来很容易就知道它是用来规定背景尺寸的。
关于浏览器兼容性
    IE9+、Firefox 4+、Opera、Chrome 以及 Safari 5+。
用法
   background-size有4个值分别是(length | percentage | cover | contain)。
        length: 它主要是用来规定背景的宽(width)和高(heigth)。eg: background-size: 100px 100px; 
        percentage: 它主要是用来以父元素的百分比来设置背景的宽高。 eg: background-size: 50% 50%;
        length和percentage的用法其实是相似的, 都是通过设置背景的长宽来显示图片。 如果只有一个参数, 则表示另一个参数为auto。
        cover: 它主要表示把图片扩展到足够大, 以使背景图像完全覆盖背景区域。 这里要注意背景图像的某些部分也许无法显示在背景定位区域中。
        eg: background-size: cover;
        contain: 它主要表示把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域。eg: background-size: contain;

背景图不平铺
background-repeat: no-repeat;

当内容高度大于图片高度时,背景图像的位置相对于viewport固定
background-attachment: fixed; //此条属性必须设置否则可能无效/

让背景图基于容器大小伸缩
background-size: cover;

selenium phantomjs java无界面浏览器环境搭建
java selenium搭建无界面浏览器

1.http://phantomjs.org/

下载windows版phantomjs

2.解压后bin目录下会有exe文件

40025-r9ul0icd84q.png

3.测试代码:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
public class test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
//    System.setProperty("webdriver.gecko.driver", "C:\\Program Files (x86)\\Mozilla Firefox\\geckodriver.exe");
    System.setProperty("phantomjs.binary.path", "C:\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
//    WebDriver driver = new FirefoxDriver();
    WebDriver driver = new PhantomJSDriver();
    driver.get("http://www.baidu.com");
    System.out.println(driver.getCurrentUrl());
    

}

}

4.url成功打印
28506-yyx8dzu2av.png

/**
 * 应用完全启动后, Spring执行自定义初始化 此处初始化避免了初始化static时 bean还没注入的问题
 */
spirng mvc xml 文件
<!-- spring环境都初始化完成后执行的一些操作 -->
<bean id="instantiationListener" class ="com.xxx.xxx.web.base.InstantiationListener" />



import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; /** * 应用完全启动后, Spring执行自定义初始化 此处初始化避免了初始化static时 bean还没注入的问题 */ public class InstantiationListener implements InitializingBean { private static final Logger logger = LoggerFactory.getLogger(InstantiationListener.class); @Autowired private WechatAccessTokenService wechatAccessTokenService;// 这里注入不会有生存周期的问题 // ==>继承于InitializingBean 的afterPropertiesSet()方法是初始化方法. @Override public void afterPropertiesSet() { try { System.out.println("init.....初始化微信获取accessToken service...."); JwTokenAPI.wechatAccessTokenService = wechatAccessTokenService; //JwTokenAPI类的静态属性是wechatAccessTokenService } catch (Exception e) { logger.error("初始化微信获取accessToken service [wechatAccessTokenService] 异常"); } } }

  

	/**
	 * 功能:将http://example.com重定向至http://www.example.com
	 * */
	private static final String DOMAIN = "aaa.com";

	/**
	 * 在DispatcherServlet之前执行
	 * */
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, 
			Object handler) throws Exception {

		HttpServletRequest httpServletRequest = (HttpServletRequest) request;
		HttpServletResponse httpServletResponse = (HttpServletResponse) response;
		// 获取域名
		String serverName = request.getServerName();
		// 获取请求路径
		String path = httpServletRequest.getRequestURI();
		//queryString 支持多参数 ?a=1&b=2#&c=22## 等
		String queryString = (httpServletRequest.getQueryString() == null ? "" : "?"+httpServletRequest.getQueryString());   // 获取路径中的参数
		int end = serverName.indexOf(DOMAIN);
		if (end!= -1 && end == 0) {  //判断是否是example.com,如果是通过ip地址访问暂时不处理 //end == -1 || end == 0(不是本域名都跳转)
			httpServletResponse.setStatus(301);
			httpServletResponse.setHeader( "Location", "http://www."+DOMAIN+path+queryString);
			httpServletResponse.setHeader( "Connection", "close" );
			return false;
		}


		return true;
	}

  

	JsonObject(com.alibaba.fastjson)返回值修改后,源对象的值也发生改变解决方法
	public  static  JSONObject   getObj(String keyParam){
		JSONObject res = =Map1.get(keyParam);
		if(res!=null){
		    //使用clone方法防止影响静态变量的值
			res = (JSONObject)res.clone(); //之所以 要clone是因为上层调用若修改返回的jsonObject里面的值,会影响map (静态变量的值) 
		}
		return  res;
	}

  

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。