($sid) { session_delete(array('sid' => $sid)); session_data_delete(array('sid' => $sid)); return TRUE; } function sess_gc($maxlifetime) { global $time; $expiry = $time - $maxlifetime; $arrlist = session_find(array('last_date' => array('<' => $expiry)), array(), 1, 10000, '', array('sid', 'bigdata', 'last_date')); if (!$arrlist) return TRUE; $expiry = $time - 21600; // 超6小时未提交丢弃上传图片和附件 $sidarr = array(); foreach ($arrlist as $val) { if ($val['last_date'] > $expiry && $val['bigdata']) continue; $sidarr[] = $val['sid']; } if (empty($sidarr)) return TRUE; session_delete(array('sid' => $sidarr)); session_data_delete(array('sid' => $sidarr)); return TRUE; } function sess_start() { global $conf, $sid, $g_session; ini_set('session.name', $conf['cookie_pre'] . 'sid'); ini_set('session.use_cookies', TRUE); ini_set('session.use_only_cookies', TRUE); ini_set('session.cookie_domain', $conf['cookie_domain']); // 为空则表示当前目录和子目录 ini_set('session.cookie_path', $conf['cookie_path']); // 打开后只有通过 https 才有效 ini_set('session.cookie_secure', FALSE); ini_set('session.cookie_lifetime', 8640000); // 打开后 js 获取不到 HTTP 设置的 cookie, 有效防止 XSS,对于安全很重要,除非有 BUG,否则不要关闭。 ini_set('session.cookie_httponly', TRUE); // 活动时间 ini_set('session.gc_maxlifetime', $conf['online_hold_time']); // 垃圾回收概率 = gc_probability/gc_divisor ini_set('session.gc_probability', 1); // 垃圾回收时间 5 秒,在线人数 * 10 / 每1000个请求回收一次垃圾 ini_set('session.gc_divisor', 1000); session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy', 'sess_gc'); // register_shutdown_function 会丢失当前目录,需要 chdir(APP_PATH) $conf['url_rewrite_on'] > 1 and function_exists('chdir') and chdir(APP_PATH); // 这个必须有,否则 ZEND 会提前释放 $db 资源 register_shutdown_function('session_write_close'); session_start(); $sid = session_id(); return $sid; } // 刷新页面清理附件缓存 废弃 function sess_clear_attach() { global $sid, $time; $arr = session_read($sid); if (!$arr || 0 == $arr['bigdata']) return TRUE; session_update($sid, array('bigdata' => 0, 'last_date' => $time)); session_data_delete(array('sid' => $sid)); return TRUE; } function online_count() { return session_count(); } function online_list_cache() { static $cache = array(); $key = 'online_list'; if (isset($cache[$key])) return $cache[$key]; $cache[$key] = cache_get($key); if (NULL === $cache[$key]) { $cache[$key] = session_find(array('uid' => array('>' => 0)), array('last_date' => -1), 1, 1000); foreach ($cache[$key] as &$online) { $user = user_read_cache($online['uid']); $online['username'] = $user['username']; $online['gid'] = $user['gid']; $online['ip_fmt'] = safe_long2ip($online['ip']); $online['last_date_fmt'] = date('Y-n-j H:i', $online['last_date']); } cache_set('online_list', $cache[$key], 300); } return $cache[$key]; } function online_user_list_cache() { static $cache = array(); $key = 'online_user_list'; if (isset($cache[$key])) return $cache[$key]; $cache[$key] = cache_get($key); if (NULL === $cache[$key]) { $cache[$key] = session_find(array('uid' => array('>' => 0)), array(), 1, 1000, 'uid', array('uid')); cache_set('online_user_list', $cache[$key], 300); } return $cache[$key]; } ?>flex|江阴雨辰互联

flex

flex

flex-shrink如何如何分配容器收缩空间

flex-shrink 属性的作用:在空间不够时让各个子元素收缩以适应有限的空间了。

flex-shrink 属性定义空间不够时各个元素如何收缩。其值默认为 1。

flex-shrink 定义的仅仅只是元素宽度变小的一个权重分量。

sum > 1

<style type="text/css">.flex3{display: flex;width: 500px;border: 1px solid;height: 200px;box-sizing: content-box;line-height: 200px;font-size: 30px;color: white;text-align: center;margin: 10px auto;}.flex31{width: 200px;background: green;flex-shrink: 1;}.flex32{width: 300px;background: blue;flex-shrink: 2;}.flex33{width: 200px;background: red;flex-shrink: 3;}
</style>
<div class="flex3"><div class="flex31">1</div><div class="flex32">2</div><div class="flex33">3</div>
</div>

父元素500px;三个子元素200px、300px、200px;

子元素flex-shrink为1、2、3;

子元素超出值:200 + 300 + 200 - 500 = 200px;

收缩量:每个元素收缩的权重为其 flex-shrink 乘以其宽度

总值为:1 * 200 + 2 * 300 + 3 * 200 = 1400px;

三个元素收缩值为:

200 * 1 * 200 / 1400 = 28.57px

200 * 2 * 300 / 1400 = 85.71px

200 * 3 * 200 / 1400 = 85.71px

最终子元素宽度:

200 - 28.57 = 171.43px

300 - 85.71 = 214.29px

200 - 85.71 = 114.29px

sum < 1

所有元素的 flex-shrink 之和小于 1 时,计算方式也会有所不同:

不会收缩所有的空间,而只会收缩 flex-shrink 之和相对于 1 的比例的空间。

<style type="text/css">.flex3_{display: flex;width: 500px;border: 1px solid;height: 200px;box-sizing: content-box;line-height: 200px;font-size: 30px;color: white;text-align: center;margin: 10px auto;}.flex31{width: 200px;background: green;flex-shrink: 0.1;}.flex32{width: 300px;background: blue;flex-shrink: 0.2;}.flex33{width: 200px;background: red;flex-shrink: 0.3;}
</style>
<div class="flex3_"><div class="flex31">1</div><div class="flex32">2</div><div class="flex33">3</div>
</div>

子元素 flex-shrink值为:0.1,0.2,0.3;

总权重为:0.1 * 200 + 0.2 * 300 + 0.3 * 200 = 140px;

三个元素收缩总和却不是200,而是:200 * 0.6 / 1 = 120px;

每个元素的收缩值为:

120 * 0.1 * 200 / 140 = 17.14px

120 * 0.2 * 300 / 140 = 51.42px

120 * 0.3 * 200 / 140 = 51.42px

最终宽度为:

200 - 17.14 = 182.86px

300 - 51.42 = 248.58px

200 - 51.42 = 148.58px

flex-shrink 会受到 min-width 的影响。

flex-grow如何分配父元素的剩余空间

发布者:admin,转转请注明出处:http://www.yc00.com/news/1692599212a616170.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信